読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

CSpec で BDD

C言語

C言語のテストフレームワークって、動かすまでが大変だよねー。
なんて話をついった上でしてたところ、CSpecの存在を思い出したので、川西さんのところを見ながら学習中。

インストール

  1. 川西さんのgithubから一式を落とす(toshi-kawanishi/cspec · GitHub
  2. 展開とインストール

$ cd <展開したフォルダ>/src
$ make
$ su
$ cp libcspec.a /usr/local/lib
$ cd ../inc
$ cp * /usr/local/include

ビルドと実行

$ gcc test.c -l:libcspec.a
$ ./a.out

結果

Describe:under_test_function()
   - it return sum arguments.
       OK: (under_test_function( 1, 2 )) == (3)

サンプルソール

川西さんのところのを試しました

#include <cspec.h>
#include <cspec_output_verbose.h>

int under_test_function( int a, int b )
{
	return a + b;
}

DESCRIBE(xml_long, "under_test_function()")
{
	IT( "return sum arguments." ) {
		SHOULD_EQUAL( under_test_function( 1, 2 ), 3 );
	} END_IT;
} END_DESCRIBE;

int main( int argc, char **argv )
{
	CSpec_Run( DESCRIPTION(xml_long), CSpec_NewOutputVerbose() );
	return 0;
}

まとめ

インストールからサンプルの実行まで数十分。
これなら十分に実用的ではないでしょうか?