[ CCUnit project page ] [ CCUnit home page ]
データ構造 | 型定義 | 関数

テストケースを書く

テストケースを書くのコラボレーション図

データ構造

struct  CCUnitTestCase
 Wraps a test case with setUp and tearDown function. [詳細]
struct  CCUnitTestFunc
 A single test function object. [詳細]

型定義

typedef struct CCUnitTestCase CCUnitTestCase
 Wraps a test case with setUp and tearDown function.
typedef struct CCUnitTestFunc CCUnitTestFunc
 A single test function object.

関数

CCUnitTestCaseccunit_newTestCase (const char *name)
 create new test case.
void ccunit_deleteTestCase (CCUnitTestCase *testCase)
 Destructs test case.
void ccunit_addTestFunc (CCUnitTestCase *testCase, CCUnitTestFunc *f)
 add test function to test case.
CCUnitTestFuncccunit_addNewTestFunc (CCUnitTestCase *testCase, const char *name, const char *desc, void(*runTest)())
 add new test func to test case.
CCUnitTestFuncccunit_newTestFunc (const char *name, const char *desc, void(*runTest)())
 Create new test function.
void ccunit_deleteTestFunc (CCUnitTestFunc *f)
 Delete test function.

型定義

Wraps a test case with setUp and tearDown function.

A TestCase is used to provide a common environment for a set of test cases.

To define a test case, do the following:

  • the case is defined by static variables
  • initialize the case state by setUp function
  • clean-up after a test by tearDown function

Each test runs in its own case so there can be no side effects among test runs. Here is an example:

 static int value1, value2;

 void setUp_MathTest ()
 {
   value1 = 2;
   value2 = 3;
 }

 ...

 CCUnitTestCase* MathTest_newTestCase ()
 {
   return ccunit_newTestCase ("MathTest", setUp_MathTest, NULL);
 }

For each test implement a function which interacts with the case. Verify the expected results with assertions specified by calling CCUNIT_ASSERT on the expression you want to test:

 void testAdd ()
 {
   int result = value1 + value2;
   CCUNIT_ASSERT (result == 5);
 }

 ...

 void MathTest_newTestCase_testAdd ()
 {
   return ccunit_newTestCase ("testAdd", "add test", testAdd);
 }

The tests to be run can be collected into a TestSuite.

 CCUintTestSuite* MathTest_suite ()
 {
   CCUnitTestSuite* suite = ccunit_newTestSuite ("MathTest");
   CCUnitTestCase* tcase = MathTest_newTestCase ();
   ccunit_addTestCase (suite, tcase);
   ccunit_addTestCase (tcase, MathTest_newTestCase_testAdd ());
   ccunit_addTestCase (tcase, MathTest_newTestCase_testDivZero ())
   return suite;
 }

Once the functions are defined you can run them. To do this, use a TestRunner.

   CCUnitTestRunner *runner = ccunit_newTestRunner (stdout);
   CCUnitTestSuite *suite = MathTest_suite ();
   runner->run (runner, suite);

A command line tool have been created for convenience. It is located in src/tools/ccunit_makeSuite.c.

参照:
CCUnitTestResult, CCUnitTestCase, CCUnitTestSuite, MakeSuite,

A single test function object.

For each test implement a function which interacts with the case. Verify the expected results with assertions specified by calling CCUNIT_ASSERT on the expression you want to test:

 void testAdd ()
 {
   int result = value1 + value2;
   CCUNIT_ASSERT (result == 5);
 }

 ...
 int main ()
 {
   CCUnitTestResult* r;
   CCUnitTestCase* c = ccunit_newTestCase ("math test");
   CCUnitTestFunc* f = ccunit_newTestFunc ("testAdd", "add test", testAdd);
   ccunit_addTestFunc (c, f);
   r = ccunit_runTestCase (c);
   return 0;
 }
参照:
CCUnitTestCase, CCUnitTestSuite, MakeSuite

関数

CCUnitTestFunc* ccunit_addNewTestFunc ( CCUnitTestCase testCase,
const char *  name,
const char *  desc,
void(*)()  runTest 
)

add new test func to test case.

引数:
testCase test case.
name test case name.
desc test case description.
runTest run test function.
戻り値:
new test func

参照先 ccunit_addTestFunc(), ccunit_newTestFunc(), と runTest().

関数の呼び出しグラフ:

void ccunit_addTestFunc ( CCUnitTestCase testCase,
CCUnitTestFunc f 
)

add test function to test case.

引数:
testCase test case.
f test function.

参照先 ccunit_addList(), ccunit_deleteTestFunc(), CCUnitTestFunc::name, CCUnitTestCase::setUp, CCUnitTestCase::setup_setUp, CCUnitTestCase::setup_tearDown, CCUnitTestCase::tearDown, と CCUnitTestCase::testFuncs.

参照元 ccunit_addNewTestFunc().

関数の呼び出しグラフ:

呼出しグラフ:

void ccunit_deleteTestCase ( CCUnitTestCase testCase  )  [inline]

Destructs test case.

引数:
testCase deleting case.

参照先 ccunit_deleteTest(), と CCUnitTestCase::test.

参照元 ccunit_setTestFixtureSetup(), と destroy().

関数の呼び出しグラフ:

呼出しグラフ:

void ccunit_deleteTestFunc ( CCUnitTestFunc f  )  [inline]

Delete test function.

引数:
f deleting function.

参照元 ccunit_addTestFunc(), と destroy().

呼出しグラフ:

CCUnitTestCase* ccunit_newTestCase ( const char *  name  ) 

create new test case.

引数:
name test case name.
戻り値:
new test case.

参照先 ccunit_initList(), ccunit_initTest(), ccunitTypeTestCase, destroy(), CCUnitTestCase::name, run(), safe_strdup, CCUnitTestCase::test, と CCUnitTestCase::testFuncs.

参照元 ccunit_addNewTestCase().

関数の呼び出しグラフ:

呼出しグラフ:

CCUnitTestFunc * ccunit_newTestFunc ( const char *  name,
const char *  desc,
void(*)()  runTest 
)

Create new test function.

引数:
name function name.
desc function description.
runTest run test function.
戻り値:
new test function object.

参照元 ccunit_addNewTestFunc().

呼出しグラフ:

SourceForge.jp hosts this site. Send comments to: CCUnit Developer