CppUnit基础使用

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 中:

class CPlusTestCase : 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::TestRunner runner;

runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(" abc ").makeTest());

//添加测试

runner.run();//show UI

 

注意:

1 cppunit 相应头文件的 #include 需放到 #define new DEBUG_NEW的前面;

2 ,使用相应 lib debug release 版本,碰到过因版本不同而程序执行报错的问题;

 

你可能感兴趣的:(多线程,测试)