[ CCUnit project page ] |  | [ CCUnit home page ]

Data Fields

# CCUnitTestFixture Struct Reference
[TestFixture, Writing test fixture]

Wraps a test case with setUp and tearDown function. More...

`#include <CCUnitTestFixture.h>`

Collaboration diagram for CCUnitTestFixture:
[legend]

## Data Fields
CCUnitTest | test
| super class
const char * | name
| test fixture name
CCUnitTestFunc * | setup_setUp
| setUp for a fixture
CCUnitTestFunc * | setup_tearDown
| tearDown for a fixture
CCUnitTestFunc * | setUp
| setUp for each cases
CCUnitTestFunc * | tearDown
| tearDown for each cases
CCUnitList | testCases
| test cases

## Detailed Description

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;
     }

     ...

     CCUnitTestFixture* MathTest_newTestFixture ()
     {
       return ccunit_newTestFixture ("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");
       CCUnitTestFixture* fixture = MathTest_newTestFixture ();
       ccunit_addTestFixture (suite, fixture);
       ccunit_addTestCase (fixture, MathTest_newTestCase_testAdd ());
       ccunit_addTestCase (fixture, 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.

See also:
  CCUnitTestResult, CCUnitTestCase, CCUnitTestSuite, MakeSuite,

## Field Documentation

const char* CCUnitTestFixture::name

test fixture name

Referenced by ccunit_newTestFixture(), and destroy().

CCUnitTestFunc* CCUnitTestFixture::setUp

setUp for each cases

Referenced by ccunit_newTestFixture(), destroy(), and run().

CCUnitTestFunc* CCUnitTestFixture::setup_setUp

setUp for a fixture

Referenced by ccunit_setTestFixtureSetup(), and run().

CCUnitTestFunc* CCUnitTestFixture::setup_tearDown

tearDown for a fixture

Referenced by ccunit_setTestFixtureSetup(), and run().

CCUnitTestFunc* CCUnitTestFixture::tearDown

tearDown for each cases

Referenced by ccunit_newTestFixture(), destroy(), and run().

CCUnitTest CCUnitTestFixture::test

super class

Referenced by ccunit_newTestFixture(), and ccunit_runTestFixture().

CCUnitList CCUnitTestFixture::testCases

test cases

Referenced by ccunit_addTestCase(), ccunit_newTestFixture(), destroy(), and run().

The documentation for this struct was generated from the following file:

- CCUnitTestFixture.h

| hosts this site. |  | Send comments to: CCUnit Developer |