CppUnit project page | FAQ

Public Member Functions | Protected Member Functions | List of all members
Test Class Referenceabstract
Browsing collected test result

Base class for all test objects.All test objects should be a subclass of Test. Some test objects, TestCase for example, represent one individual test. Other test objects, such as TestSuite, are comprised of several tests. More...

`#include <Test.h>`

Inheritance diagram for Test:

## Public Member Functions

virtual | ~Test ()
virtual void | run (TestResult *result)=0
| Run the test, collecting results. More...
virtual int | countTestCases () const =0
| Return the number of test cases invoked by run(). More...
virtual int | getChildTestCount () const =0
| Returns the number of direct child of the test. More...
virtual Test * | getChildTestAt (int index) const
| Returns the child test of the specified index. More...
virtual std::string | getName () const =0
| Returns the test name. More...
virtual bool | findTestPath (const std::string &testName, TestPath &testPath) const
| Finds the test with the specified name and its parents test. More...
virtual bool | findTestPath (const Test *test, TestPath &testPath) const
| Finds the specified test and its parents test. More...
virtual Test * | findTest (const std::string &testName) const
| Finds the test with the specified name in the hierarchy. More...
virtual TestPath | resolveTestPath (const std::string &testPath) const
| Resolved the specified test path with this test acting as 'root'. More...

## Protected Member Functions

virtual void | checkIsValidIndex (int index) const
virtual Test * | doGetChildTestAt (int index) const =0
| Returns the child test of the specified valid index. More...

## Detailed Description

Base class for all test objects.

All test objects should be a subclass of Test. Some test objects, TestCase for example, represent one individual test. Other test objects, such as TestSuite, are comprised of several tests.

When a Test is run, the result is collected by a TestResult object.

See also
  TestCase
  TestSuite

## Constructor & Destructor Documentation

## ◆ ~Test()

virtual Test::~Test | ( |  | ) |

inline virtual

## Member Function Documentation

## ◆ checkIsValidIndex()

void Test::checkIsValidIndex | ( | int | index | ) | const

protected virtual

Throws an exception if the specified index is invalid.

Parameters

  index | Zero base index of a child test.

Exceptions

  std::out_of_range | is index is < 0 or >= getChildTestCount().

## ◆ countTestCases()

virtual int Test::countTestCases | ( |  | ) | const

pure virtual

Return the number of test cases invoked by run().

The base unit of testing is the class TestCase. This method returns the number of TestCase objects invoked by the run() method.

Implemented in RepeatedTest, TestDecorator, TestComposite, and TestLeaf.

## ◆ doGetChildTestAt()

virtual Test* Test::doGetChildTestAt | ( | int | index | ) | const

protected pure virtual

Returns the child test of the specified valid index.

Parameters

  index | Zero based valid index of the child test to return.

Returns
  Pointer on the test. Never `NULL`.

Implemented in TestRunner::WrappingSuite, TestSuite, TestLeaf, and TestDecorator.

## ◆ findTest()

Test * Test::findTest | ( | const std::string & | testName | ) | const

virtual

Finds the test with the specified name in the hierarchy.

Parameters

  testName | Name of the test to find.

Returns
  Pointer on the first test found that is named testName. Never `NULL`.

Exceptions

  std::invalid_argument | if no test named testName is found.

## ◆ findTestPath() [1/2]

bool Test::findTestPath | ( | const std::string & | testName,
|  | TestPath & | testPath
| ) |  | const

virtual

Finds the test with the specified name and its parents test.

Parameters

  testName | Name of the test to find.
  testPath | If the test is found, then all the tests traversed to access test are added to testPath, including `this` and test.

Returns
  `true` if a test with the specified name is found, `false` otherwise.

## ◆ findTestPath() [2/2]

bool Test::findTestPath | ( | const Test * | test,
|  | TestPath & | testPath
| ) |  | const

virtual

Finds the specified test and its parents test.

Parameters

  test | Test to find.
  testPath | If the test is found, then all the tests traversed to access test are added to testPath, including `this` and test.

Returns
  `true` if the specified test is found, `false` otherwise.

## ◆ getChildTestAt()

CPPUNIT_NS_BEGIN Test * Test::getChildTestAt | ( | int | index | ) | const

virtual

Returns the child test of the specified index.

This method test if the index is valid, then call doGetChildTestAt() if the index is valid. Otherwise std::out_of_range exception is thrown.

You should override doGetChildTestAt() method.

Parameters

  index | Zero based index of the child test to return.

Returns
  Pointer on the test. Never `NULL`.

Exceptions

  std::out_of_range | is index is < 0 or >= getChildTestCount().

## ◆ getChildTestCount()

virtual int Test::getChildTestCount | ( |  | ) | const

pure virtual

Returns the number of direct child of the test.

Implemented in TestRunner::WrappingSuite, TestSuite, TestLeaf, and TestDecorator.

## ◆ getName()

virtual std::string Test::getName | ( |  | ) | const

pure virtual

Returns the test name.

Each test has a name. This name may be used to find the test in a suite or registry of tests.

Implemented in TestRunner::WrappingSuite, TestCase, TestDecorator, TestComposite, and TestCaseDecorator.

## ◆ resolveTestPath()

TestPath Test::resolveTestPath | ( | const std::string & | testPath | ) | const

virtual

Resolved the specified test path with this test acting as 'root'.

Parameters

  testPath | Test path string to resolve.

Returns
  Resolved TestPath.

Exceptions

  std::invalid_argument | if testPath could not be resolved.

See also
  TestPath.

## ◆ run()

virtual void Test::run | ( | TestResult * | result | ) |

pure virtual

Run the test, collecting results.

Implemented in TestRunner::WrappingSuite, TestCase, TestDecorator, RepeatedTest, TestComposite, and TestSetUp.

The documentation for this class was generated from the following files:

- Test.h
- Test.cpp

| Send comments to: CppUnit Developers