1.取得Cppunit發(fā)行版本(http://cppunit.sourceforge.net/)我下載的是cppunit-1.10.2
2.使用INSTALL-WIN32.txt,
3.查看examples中的例子,觀看其配置。
Libraries:
----------
All the compiled libraries and DLL can be found in the 'lib' directory.
Most libraries can be build from src/CppUnitLibraries.dsw workspace.
lib:
cppunit.lib : CppUnit static library "Multithreaded DLL"
cppunitd.lib : CppUnit static library "Debug Multithreaded DLL"
cppunit_dll.dll : CppUnit dynamic library (DLL) "Multithreaded DLL"
cppunit_dll.lib : CppUnit dynamic import library "Multithreaded DLL"
cppunitd_dll.dll : CppUnit dynamic library (DLL) "Debug Multithreaded DLL"
cppunitd_dll.lib : CppUnit dynamic import library "Debug Multithreaded DLL"
qttestrunner.dll : QT TestRunner dynamic library (DLL) "Multithreaded DLL"
qttestrunner.lib : QT TestRunner import library "Multithreaded DLL"
testrunner.dll : MFC TestRunner dynamic library (DLL) "Multithreaded DLL"
testrunner.lib : MFC TestRunner import library "Multithreaded DLL"
testrunnerd.dll : MFC TestRunner dynamic library (DLL) "Debug Multithreaded DLL"
testrunnerd.lib : MFC TestRunner import library "Debug Multithreaded DLL"
testrunneru.dll : MFC Unicode TestRunner dynamic library (DLL) "Multithreaded DLL"
testrunneru.lib : MFC Unicode TestRunner import library "Multithreaded DLL"
testrunnerud.dll : MFC Unicode TestRunner dynamic library (DLL) "Debug Multithreaded DLL"
testrunnerud.lib : MFC Unicode TestRunner import library "Debug Multithreaded DLL"
TestRunnerDSPlugIn.dll : The add-in you register in VC++.
A. 新建一個(gè)MFC應(yīng)用程序
B. 在“工具”-選項(xiàng)-目錄
C. 在工程配置里面選擇RTTI
Link下加入 Debugcppunitd.lib Debug estrunnerd.lib ,記得把這輛個(gè)文件從cppunit-1.10.2lib拷出來(lái),把相應(yīng)的dll文件也拷到debug目錄下
D. 在App初始化函數(shù)中App::InitInstance()的開頭加入
#include
#include
在其中加入
CppUnit::MfcUi::TestRunner runner;
runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
runner.run();
記得把原來(lái)的窗口注掉,不然調(diào)用的還是原來(lái)的窗口。
E. 加入要測(cè)的類叫XXX
我們起這個(gè)類的測(cè)試叫testXXX 類
#include
#include
#include "testXXX .h"
class testXXX : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(testXXX );
CPPUNIT_TEST(testcase1); //這里是我們的testcase的函數(shù)原型名字
CPPUNIT_TEST(testcase2);
CPPUNIT_TEST_SUITE_END();
public:
void setUp();
void tearDown();
protected:
void testcase1();//聲明我們的測(cè)試函數(shù)
void testcase2();
private:
testXXX *fixture;
};
其cpp文件必須要有
CPPUNIT_TEST_SUITE_REGISTRATION(testXXX);
然后
void testXXX::setUp()
{
fixture = new testXXX();//當(dāng)然要按照實(shí)際的類構(gòu)造你的測(cè)試對(duì)象了
}
void testXXX::tearDown()
{
delete fixture;
fixture = NULL;//析構(gòu)你的測(cè)試對(duì)象
}
下面是你的測(cè)試函數(shù)
void testXXX::testcase1()
{
CPPUNIT_ASSERT(condition1);//如果condition1為false激發(fā)這個(gè)assert
CPPUNIT_ASSERT_MESSAGE(”msg“ , condition2);
……
}
第二個(gè)類似這樣可以