| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #ifndef CPPUNIT_TEST_H
- #define CPPUNIT_TEST_H
- #include <cppunit/Portability.h>
- #include <string>
- CPPUNIT_NS_BEGIN
- class TestResult;
- class TestPath;
- /*! \brief Base class for all test objects.
- * \ingroup BrowsingCollectedTestResult
- *
- * 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 TestCase
- * \see TestSuite
- */
- class CPPUNIT_API Test
- {
- public:
- virtual ~Test() {};
- /*! \brief Run the test, collecting results.
- */
- virtual void run( TestResult *result ) =0;
- /*! \brief 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.
- */
- virtual int countTestCases () const =0;
- /*! \brief Returns the number of direct child of the test.
- */
- virtual int getChildTestCount() const =0;
- /*! \brief 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.
- *
- * \param index Zero based index of the child test to return.
- * \return Pointer on the test. Never \c NULL.
- * \exception std::out_of_range is \a index is < 0 or >= getChildTestCount().
- */
- virtual Test *getChildTestAt( int index ) const;
- /*! \brief 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.
- */
- virtual std::string getName () const =0;
- /*! \brief Finds the test with the specified name and its parents test.
- * \param testName Name of the test to find.
- * \param testPath If the test is found, then all the tests traversed to access
- * \a test are added to \a testPath, including \c this and \a test.
- * \return \c true if a test with the specified name is found, \c false otherwise.
- */
- virtual bool findTestPath( const std::string &testName,
- TestPath &testPath ) const;
- /*! \brief Finds the specified test and its parents test.
- * \param test Test to find.
- * \param testPath If the test is found, then all the tests traversed to access
- * \a test are added to \a testPath, including \c this and \a test.
- * \return \c true if the specified test is found, \c false otherwise.
- */
- virtual bool findTestPath( const Test *test,
- TestPath &testPath ) const;
- /*! \brief Finds the test with the specified name in the hierarchy.
- * \param testName Name of the test to find.
- * \return Pointer on the first test found that is named \a testName. Never \c NULL.
- * \exception std::invalid_argument if no test named \a testName is found.
- */
- virtual Test *findTest( const std::string &testName ) const;
- /*! \brief Resolved the specified test path with this test acting as 'root'.
- * \param testPath Test path string to resolve.
- * \return Resolved TestPath.
- * \exception std::invalid_argument if \a testPath could not be resolved.
- * \see TestPath.
- */
- virtual TestPath resolveTestPath( const std::string &testPath ) const;
- protected:
- /*! Throws an exception if the specified index is invalid.
- * \param index Zero base index of a child test.
- * \exception std::out_of_range is \a index is < 0 or >= getChildTestCount().
- */
- virtual void checkIsValidIndex( int index ) const;
- /*! \brief Returns the child test of the specified valid index.
- * \param index Zero based valid index of the child test to return.
- * \return Pointer on the test. Never \c NULL.
- */
- virtual Test *doGetChildTestAt( int index ) const =0;
- };
- CPPUNIT_NS_END
- #endif // CPPUNIT_TEST_H
|