TestSuite.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #ifndef CPPUNIT_TESTSUITE_H
  2. #define CPPUNIT_TESTSUITE_H
  3. #include <vector>
  4. #include <string>
  5. #ifndef CPPUNIT_GUARDS_H
  6. #include "Guards.h"
  7. #endif
  8. #ifndef CPPUNIT_TEST_H
  9. #include "Test.h"
  10. #endif
  11. class TestResult;
  12. /*
  13.  * A TestSuite is a Composite of Tests.
  14.  * It runs a collection of test cases. Here is an example.
  15.  * 
  16.  * TestSuite *suite= new TestSuite();
  17.  * suite->addTest(new TestCaller<MathTest> ("testAdd", testAdd));
  18.  * suite->addTest(new TestCaller<MathTest> ("testDivideByZero", testDivideByZero));
  19.  * 
  20.  * Note that TestSuites assume lifetime
  21.  * control for any tests added to them.
  22.  *
  23.  * see Test and TestCaller
  24.  */
  25. class TestSuite : public Test
  26. {
  27.     REFERENCEOBJECT (TestSuite)
  28. public:
  29.                         TestSuite       (std::string name = "");
  30.                         ~TestSuite      ();
  31.     void                run             (TestResult *result);
  32.     int                 countTestCases  ();
  33.     void                addTest         (Test *test);
  34.     std::string         toString        ();
  35.     virtual void        deleteContents  ();
  36. private:
  37.     std::vector<Test *> m_tests;
  38.     const std::string   m_name;
  39. };
  40. // Default constructor
  41. inline TestSuite::TestSuite (std::string name)
  42. : m_name (name)
  43. {}
  44. // Destructor
  45. inline TestSuite::~TestSuite ()
  46. { deleteContents (); }
  47. // Adds a test to the suite. 
  48. inline void TestSuite::addTest (Test *test)
  49. { m_tests.push_back (test); }
  50. // Returns a string representation of the test suite.
  51. inline std::string TestSuite::toString ()
  52. { return "suite " + m_name; }
  53. #endif