The class TestSuite (see Figure C-31) implements the interface Test . It is a composite of Test objects. Since the contained Test objects may be instances of TestCase , TestSuite , or any other subclass of Test , this allows hierarchies of Test classes to be assembled and run as a unit. A TestSuite is run just like a TestCase : by calling its run( ) method and passing in a TestResult to receive the results. The TestSuite then sequentially runs the Test objects it contains.

A TestSuite takes ownership of all Test objects added to it and deletes them in its destructor.

TestSuite belongs to the namespace CppUnit . It is declared in the file TestSuite.h and implemented in the file TestSuite.cpp .

Figure C-31. The class TestSuite


 class TestSuite : public Test 


TestSuite(string name = "")

Constructs a TestSuite , optionally giving it a name.

virtual ~TestSuite( )

A destructor. Deletes all the contained Test objects.

Public Methods

void addTest(Test *test)

Adds a Test to this TestSuite .

int countTestCases( ) const

Returns the total number of TestCase objects to be run by this TestSuite , by recursively calling countTestCases( ) on all the contained Test objects.

virtual void deleteContents( )

Deletes all the contained Test objects.

string getName( ) const

Returns the name of this TestSuite .

const vector<Test *> &getTests( ) const

Returns the collection of contained Test objects.

void run(TestResult *result)

Runs the Test objects and receives the results in result .

string toString( ) const

Returns a string representation of this TestSuite .

Protected/Private Methods

TestSuite(const TestSuite &other)

A copy constructor declared private to prevent its use.

TestSuite& operator=(const TestSuite &other)

A copy operator declared private to prevent its use.


const string m_name

The name of this TestSuite . May be empty ( private ).

vector<Test *> m_tests

The collection of Test objects belonging to this TestSuite ( private ).

Unit Test Frameworks
Unit Test Frameworks
ISBN: 0596006896
EAN: 2147483647
Year: 2006
Pages: 146
Authors: Paul Hamill

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net