以下以一个helloworld的实例讲解CPPUNIT的使用,以下例子仅作参考,注释部分表达得不很严谨,仅作参考。
#include "cppunit/Portability.h" #include "cppunit/TestAssert.h" #include "cppunit/extensions/TestFactoryRegistry.h" #include "cppunit/extensions/HelperMacros.h" #include "cppunit/TestResult.h" #include "cppunit/TestRunner.h" #include "cppunit/TestResultCollector.h" #include "cppunit/BriefTestProgressListener.h" class Test:public CPPUNIT_NS::TestCase //定义测试用例 { CPPUNIT_TEST_SUITE(Test); //创建一个suite,并将Test添加到suite CPPUNIT_TEST(testHelloWorld); //声明一个测试用例testHelloWorld,如果需要增加测试用例也需要在这里声明。 CPPUNIT_TEST_SUITE_END(); //结束suite声明 public: void setUp(void) //CPPUNIT提供的初始化方法,将需要初始化的变量等在这里定义赋值。类似于构造函数,在执行testcase之前自动调动。 本实例没有需要初始化的变量。 { } void tearDown(void) //CPPUNIT提供的结束testcase执行完之后自动运行的方法,如,需要清除的指针等。testcase执行完后自动调用,类似于虚构函数。本例不需要作清除工作,也可以不定义 { } protected: void testHelloWorld(void){ //测试用例testHelloWorld,如果需要增加测试用例,可以继续添加 printf("Hello,World!/n"); } }; CPPUNIT_TEST_SUITE_REGISTRATION(Test); //通过宏注册Test到test suite int main() { CPPUNIT_NS::TestResult controller; //保存测试结果 CPPUNIT_NS::TestResultCollector result; //收集测试用例的执行结果,它能够区分测试用例执行结果是false或是出现了错误。 controller.addListener(&result); CPPUNIT_NS::BriefTestProgressListener progress; controller.addListener(&progress); CPPUNIT_NS::TestRunner runner; // TestRunner用于执行测试用例,它将待执行的测试对象管理起来,然后供用户调用 runner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest()); runner.run(controller); return result.wasSuccessful()?0:-1; //反回用例的执行结果,如果成功返回0失败返回-1 } |