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 版本,碰到過因版本不同而程序執行報錯的問題;