您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > cppUnit
VS2005下使用CPPUNIT進行單元測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/1/7 13:09:19 ] 推薦標簽:CPPUNIT 單元測試

  2. 使用

  參考:

  CppUnit測試框架入門 http://www.vckbase.com/document/viewdoc/?id=1258

  Unit testing with CPPUnit http://www.codeproject.com/KB/library/Using_CPPUnit.aspx

  visual studio 2005 wizard for cpp unit http://www.nabble.com/visual-studio-2005-wizard-for-cpp-unit-td4809724.html

  3. 框架

  本節(jié)把CPPUNIT的框架分為三個部分進行簡單介紹。

  1) 測試對象族

  CPPUNIT的測試對象的類關(guān)系圖:

  Test:所有測試對象類的抽象基類,主要是定義run方法和統(tǒng)計子對象個數(shù)和查找遍歷子對象的方法;

  TestFixture:該類非常簡單,只定義了兩個方法setUp和tearDown,作為測試對象的準備和拆除方法,一般用戶編寫的測試類都直接繼承它;

  TestComposite、TestLeaf:根據(jù)設(shè)計模式中組合模式而設(shè)計的兩個類,都繼承自Test;

  TestSuite:具體化了TestComposite的內(nèi)容存儲方式、添加子對象接口等等。該類對象包含了若干測試對象,作為測試對象的容器,而且可以嵌套;

  TestRunner: 控制測試對象的構(gòu)造和測試對象執(zhí)行的類;

  TestCase: 定義了一個測試對象要實現(xiàn)的具體接口,同時繼承TestFixture的setUp和tearDown;

  接口

  TestCaller: 使用了設(shè)計模式中的策略模式,作為測試對象的終封裝類,提供了測試運行的策略,在測試執(zhí)行中扮演了重要的角色。它是一個模板類。

  2) 信息收集與顯示族

  CPPUNIT的測試信息收集與顯示的類關(guān)系圖

  Outputter:是所有測試輸出類的抽象基類,定義了write方法;

  CompilerOutputter:以編譯器信息類似方式輸出測試信息,使用TestResultCollector獲取測試信息;

  TextOutputter:以文本流的方式輸出測試信息,同樣使用TestResultCollector獲取測試信息;

  TestListener:以設(shè)計模式中觀察者模式定義了Observer所應(yīng)該具有的從TestResult獲取測試步驟信息的方法;

  TestSuccessListener:實現(xiàn)了TestListener接口,同時繼承了SynchronizedObject了從而具有線程安全性;

  SynchronizedObject:該類實現(xiàn)了lock和unlock操作;

  ExclusiveZone:使用SynchronizedObject進行了臨界區(qū)的加鎖和解鎖操作;

  TestResult:這個測試信息的收集者,在觀察者模式中扮演Subject角色,是它把測試的各個步驟的信息通知到所有Listener對象的。

  3)測試對象管理族

  CPPUNIT測試對象管理類關(guān)系圖

  TestFactory:運用了設(shè)計模式中工廠設(shè)計模式,這里只定義了一個makeTest方法,是一個抽象基類;

  TestSuiteFactory:該類繼承自TestFactory,而且是模板類,是生成TestSuite對象的工廠;

  TestFactoryRegistry:管理TestFactory對象的類(這里繼承自TestFactory個人感覺有點不太恰當);

  AutoRegisterSuite:模板類,自動把特定的TestSuiteFactory對象注冊到TestFactoryRegistry對象;

  TestSuiteBuilderContextBase、TestSuiteBuilderContext:用于構(gòu)建測試對象的類,詳細見代碼分析部分。

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