???????????????????
????1????Fixture???????????????????????????????????????CppUnit::TestCaller?????
??????????????????Fixture????????????????????Fixture??CppUnit?а??????????е??????????????TestSuite??
??????TestRunner?????в???????????TestSuite????????????в??????????????????????????3??TestRunner:
????(1) CppUnit::TestUi::TestRunner//????????TestRunner
????(2) CppUnit::QtUi:: TestRunner//Qt?????TestRunner
????(3) CppUnit::MfcUi:: TestRunner//MFC???
???????????????
????1???????????????????
????2?????????????????
????3??????GUI??????MFC???????
???????????????
????1????????????????
????????? cppunitd_dll.dll??cppunitd_dll.lib??
???????????????????????TestRunner ?磺CppUnit::TestUi::TestRunner??
????Step1:????????????????д??????????????CppUnit::TestFixture??????????2???麯????void setup()??void teardown();
????void setup()  ?????????????
????void teardown()  ?????β???????????
???????????????2????????
????Step2:??д???????????????testAdd();
????Step3:??д?????????????
??????????????£?


main.cpp
#include "MathTest.h"
#include "cppunit/TestSuite.h"
#include "cppunit/ui/text/TestRunner.h"
#include "cppunit/TestCaller.h"
#include <iostream>
using namespace std;
#pragma comment (lib?? "cppunitd_dll.lib")
int main()
{
CppUnit::TextUi::TestRunnerrunner;
CppUnit::TestSuite*suite = new CppUnit::TestSuite();
//??????????????
suite->addTest(newCppUnit::TestCaller<MathTest>("testAdd"??&MathTest::testAdd));
//???????TestSuite
runner.addTest(suite);
//??????У????????????????????
runner.run(""??true);
return 0;
}
MathTest.h
#include "cppunit/TestFixture.h"
class MathTest:public CppUnit::TestFixture
{
public:
//?????????
void setUp();
//???????
voidtearDown();
//??????????????
voidtestAdd();
protected:
intm_value1??m_value2;
};
MathTest.cpp
#define MATHTEST_H
#ifdef MATHTEST_H
#include "MathTest.h"
#include "cppunit/TestAssert.h"
#endif
void MathTest::setUp()
{
m_value1 = 2;
m_value2 = 3;
}
void MathTest::tearDown()
{
}
void MathTest::testAdd()
{
int ret =m_value1 + m_value2;
CPPUNIT_ASSERT(ret== 5);
}