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

  軟件測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)是以測(cè)試作為開(kāi)發(fā)過(guò)程的中心,他是極限編程的重要組成部分,XUnit是一個(gè)基于測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的測(cè)試框架,其成員很多包括:JUnit,PythonUint等,CppUint是其中一個(gè)專門面向c++的測(cè)試框架。
  在CppUnit中小的測(cè)試單元稱為測(cè)試方法(TestMethod),多個(gè)測(cè)試方法又可以組成一個(gè)測(cè)試用例(TestCase),多個(gè)測(cè)試用例又組成一個(gè)測(cè)試包(TestSuite)
  CppUnit提供了兩種測(cè)試環(huán)境,一種基于文本,一種基于GUI,在基于GUI的測(cè)試環(huán)境中,若測(cè)試不成功,進(jìn)度條顯示紅色,反之則為綠色。
  Vs環(huán)境下CppUnit開(kāi)發(fā)的基本流程(MFC方式的TestRunner)
  首先在所建工程中App的Instance()中屏蔽掉原有的對(duì)話框,代之以CppUnit的GUI,一般為以下形式:
  CppUnit::MfcUI::TestRunner runner;
  Runner.addTest(PlusTest::suite());//添加測(cè)試
  runner.run();//顯示UI
  // PlusTest::suite()該函數(shù)返回一個(gè)指向CppUnit::Test的指針,這個(gè)指針是整個(gè)測(cè)試的起點(diǎn),CppUnit::TestFactoryRegistry()根據(jù)TestSuite的名稱返回TestFactoryRegistry工廠,然后調(diào)用工廠里的makeTest()對(duì)TestSuite進(jìn)行組裝,這是一個(gè)遞歸調(diào)用,將建立起一個(gè)樹(shù)狀的測(cè)試結(jié)構(gòu)
  然后在工程頭文件中建立一個(gè)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"
然后在工程中添加一個(gè)類,例如為: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
{
//通過(guò)這幾個(gè)宏將類CPlusTestCase和方法testFind注冊(cè)到了測(cè)試列表中了
//開(kāi)始創(chuàng)建一個(gè)TestSuite(測(cè)試包)
CPPUNIT_TEST_SUITE(CPlusTestCase);
//添加TestCase(測(cè)試用例)
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);
//測(cè)試方法
void testFind();

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