CppUnit::MfcUi::TestRunner runner;
runner.addTest(PlusTest::suite()); //添加測試
runner.run(); //show UI
/*
CCPlusTestDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
*/
前面我們提到過,TestRunner輸出圖2這樣的對話框,這也是前面我們為什么要為TestRunner.dll的路徑設置環境變量的原因。
注意:PlusTest::suite()返回一個指向CppUnit::Test的指針.這個指針就是整個測試的起點。CppUnit::TestFactoryRegistry::getRegistry()根據TestSuite的名字返回TestFactoryRegistry工廠,然后調用工廠里的makeTest()對TestSuite進行組裝,這是個遞歸調用,將建立起一個樹狀的測試結構。
namespace PlusTest
{ CppUnit::Test* suite()
{ CppUnit::TestFactoryRegistry ®istry =
CppUnit::TestFactoryRegistry::getRegistry(plusSuiteName());
return registry.makeTest(); }}
另外別忘加頭文件:
#include CPlusTestSuite.h
#include <cppunit/ui/mfc/TestRunner.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
3、在Project中加入一個類,取名CPlusTestCase
CPlusTestCase從CppUnit::TestCase繼承,代碼如下:
class CPlusTestCase : public CppUnit::TestCase
{ CPPUNIT_TEST_SUITE(CPlusTestCase);
CPPUNIT_TEST(testAdd);
CPPUNIT_TEST_SUITE_END();
public:
CPlusTestCase();
virtual ~CPlusTestCase();
void testAdd(); //測試方法};
看到這幾個宏了嗎?它們可是在這大顯身手了一把。
文章來源于領測軟件測試網 http://www.kjueaiud.com/