TestCase,单个测试用例,自定义测试类的父类;
TestSuit,一组测试用例,由TestCase组成;
编写的基本步骤:
1,新建工程,设置RTTI及多线程lib,添加需要的lib,如cppunitd.lib TestRunnerd.lib
2,从CppUnit::TestCase派生测试类CPlusTestCase;<cppunit/TestCase.h> <CppUnit/extensions/HelperMacros.h> <cppunit/extensions/TestFactoryRegistry.h>
3,在CPlusTestCase声明中注册TestSuit,表示将函数testAdd加到CPlusTestCase这个TestSuit中:
classCPlusTestCase : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(CPlusTestCase);
CPPUNIT_TEST(testAdd);
//testAdd是一个自定义的测试函数
CPPUNIT_TEST_SUITE_END();
public:
CPlusTestCase(void);
//构造在runner.addTest中被调用,而非run()或执行测试时
~CPlusTestCase(void);
void testAdd(void);
};
4,在CPlusTestCase实现文件中注册TestSuit,表示将TestSuit CPlusTestCase注册到abc这个组中;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(CPlusTestCase,"abc");
5,在程序启动时使用TestRunner添加测试及执行,<cppunit/ui/mfc/TestRunner.h>,如(需要<cppunit/extensions/TestFactoryRegistry.h>);
CppUnit::MfcUi::TestRunnerrunner;
runner.addTest(CppUnit::TestFactoryRegistry::getRegistry("abc").makeTest());
//添加测试
runner.run();//showUI
注意:
1,cppunit相应头文件的#include 需放到 #define new DEBUG_NEW的前面;
2,使用相应lib的debug或release版本,碰到过因版本不同而程序执行报错的问题;