您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > cppUnit
基于MFC的Cppunit測試用例編寫步驟
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/10/11 16:25:23 ] 推薦標(biāo)簽:

  軟件測試驅(qū)動開發(fā)(TDD)是以測試作為開發(fā)過程的中心,他是極限編程的重要組成部分,XUnit是一個基于測試驅(qū)動開發(fā)的測試框架,其成員很多包括:JUnit,PythonUint等,CppUint是其中一個專門面向c++的測試框架。
  在CppUnit中小的測試單元稱為測試方法(TestMethod),多個測試方法又可以組成一個測試用例(TestCase),多個測試用例又組成一個測試包(TestSuite)
  CppUnit提供了兩種測試環(huán)境,一種基于文本,一種基于GUI,在基于GUI的測試環(huán)境中,若測試不成功,進(jìn)度條顯示紅色,反之則為綠色。
  Vs環(huán)境下CppUnit開發(fā)的基本流程(MFC方式的TestRunner)
  首先在所建工程中App的Instance()中屏蔽掉原有的對話框,代之以CppUnit的GUI,一般為以下形式:
  CppUnit::MfcUI::TestRunner runner;
  Runner.addTest(PlusTest::suite());//添加測試
  runner.run();//顯示UI
  // PlusTest::suite()該函數(shù)返回一個指向CppUnit::Test的指針,這個指針是整個測試的起點,CppUnit::TestFactoryRegistry()根據(jù)TestSuite的名稱返回TestFactoryRegistry工廠,然后調(diào)用工廠里的makeTest()對TestSuite進(jìn)行組裝,這是一個遞歸調(diào)用,將建立起一個樹狀的測試結(jié)構(gòu)
  然后在工程頭文件中建立一個PlueTest.h的頭文件用以得到工廠并調(diào)用MakeTest函數(shù)
  形式如下:
#include "cppunit/extensions/TestFactoryRegistry.h"
namespace PlusTest
{
CppUnit::Test*suite()
{
CppUnit::TestFactoryRegistry&registry =
CppUnit::TestFactoryRegistry::getRegistry("name");
return registry.makeTest();
}
}
  Cpp文件所需頭文件為:
#include "cppunit/ui/mfc/TestRunner.h"
#include "cppunit/extensions/TestFactoryRegistry.h"
#include "PlusTest.h"
然后在工程中添加一個類,例如為:CplusTestCase
代碼如下:
#include <apr.h>
#include <cppunit/TestCase.h>
#include <cppunit/extensions/HelperMacros.h>
#include <unicode/unistr.h>
#pragma comment(lib,"icuuc.lib")
class CPlusTestCase :publicCppUnit::TestCase
{
//通過這幾個宏將類CPlusTestCase和方法testFind注冊到了測試列表中了
//開始創(chuàng)建一個TestSuite(測試包)
CPPUNIT_TEST_SUITE(CPlusTestCase);
//添加TestCase(測試用例)
CPPUNIT_TEST(testFind);
//結(jié)束創(chuàng)建TestSuite
CPPUNIT_TEST_SUITE_END();
public:
//!rief Set up context before running a test
virtual void setUp();//初始化數(shù)據(jù)成員
//!Clean up after the test run.
virtual void tearDown();//釋放清理工作
CPlusTestCase(void);
~CPlusTestCase(void);
//測試方法
void testFind();

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd