您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > cppUnit
如何使用CppUnit進(jìn)行單元測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/12/23 11:39:41 ] 推薦標(biāo)簽:

一、前言

  測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)是以測(cè)試作為開(kāi)發(fā)過(guò)程的中心,它堅(jiān)持,在編寫實(shí)際代碼之前,先寫好基于產(chǎn)品代碼的測(cè)試代碼。開(kāi)發(fā)過(guò)程的目標(biāo)是首先使測(cè)試能夠通過(guò),然后再優(yōu)化設(shè)計(jì)結(jié)構(gòu)。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)式是極限編程的重要組成部分。XUnit,一個(gè)基于測(cè)試驅(qū)動(dòng) 開(kāi)發(fā)的測(cè)試框架,它為我們?cè)陂_(kāi)發(fā)過(guò)程中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)提供了一個(gè)方便的工具,使我們得以快速的進(jìn)行單元測(cè)試。XUnit的成員有很多,如 JUnit,PythonUnit等。給大家介紹的CppUnit即是XUnit家族中的一員,它是一個(gè)專門面向C++的測(cè)試框架。

  本文不對(duì)CppUnit源碼做詳細(xì)的介紹,而只是對(duì)CppUnit的應(yīng)用作一些介紹。你將看到:

  1、CppUnit源代碼的各個(gè)組成部分;

  2、怎樣設(shè)置你的開(kāi)發(fā)環(huán)境以能夠使用CppUnit;

  3、怎樣為你的產(chǎn)品代碼添加測(cè)試代碼(實(shí)際上應(yīng)該反過(guò)來(lái),為測(cè)試代碼添加產(chǎn)品代碼。在TDD中,先有測(cè)試代碼后有產(chǎn)品代碼),并通過(guò)CppUnit來(lái)進(jìn)行測(cè)試;

  本文敘述背景為:CppUnit1.12.0, Visual C++ 6.0, WindowsXP。文中敘述有誤之處,敬請(qǐng)批評(píng)指正。

一. CppUnit的安裝

  從http://sourceforge.net/projects/cppunit CppUnit的源碼包. CppUnit是開(kāi)源產(chǎn)品 , 當(dāng)前高版本為1.12.0. (在上面的鏈接所指向的頁(yè)面上選擇 Development Snapshot ).

  下載后,將源碼包解壓縮到本地硬盤,例如解壓到E: cppunit-1.12.0。筆者把文件夾名稱中的版本號(hào)去掉,即源碼包解壓縮到E:cppunit。下載解壓后,你將看到如下文件夾:

  主要的文件夾有:

    doc: CppUnit的說(shuō)明文檔。另外,代碼的根目錄,還有三個(gè)說(shuō)明文檔,分別是INSTALL,INSTALL-unix,INSTALL-WIN32.txt;
    examples: CpppUnit提供的例子,也是對(duì)CppUnit自身的測(cè)試,通過(guò)它可以學(xué)習(xí)如何使用CppUnit測(cè)試框架進(jìn)行開(kāi)發(fā);
    include: CppUnit頭文件;
    src: CppUnit源代碼目錄;
    config:配置文件;
    contrib:contribution,其他人貢獻(xiàn)的外圍代碼;
    lib:存放編譯好的庫(kù);
    src:源文件,以及編譯庫(kù)的project等;

  接下來(lái)進(jìn)行編譯工作。 在src/目錄下, 將CppUnitLibraries.dsw工程文件用vc 打開(kāi)。執(zhí)行build/batch build,編譯成功的話,生成的庫(kù)文件將被拷貝到lib目錄下。中途或者會(huì)有些project編譯失敗,一般不用管它,我們重點(diǎn)看的是cppunit和TestRunner 這兩個(gè)project的debug和release版本。

  編譯通過(guò)以后, 在lib/目錄下,會(huì)生成若干lib,和dll文件, 都以cppunit開(kāi)頭. cppunitd表示debug版, cppunit表示release版。

  CppUnit為我們提供了兩套框架庫(kù),一個(gè)為靜態(tài)的lib,一個(gè)為動(dòng)態(tài)的dll。cppunit project:靜態(tài)lib;cppunit_dll project:動(dòng)態(tài)dll和lib。在開(kāi)發(fā)中我們可以根據(jù)實(shí)際情況作出選擇。

  你也可以根據(jù)需要選擇所需的項(xiàng)目進(jìn)行編譯,其中項(xiàng)目cppunit為靜態(tài)庫(kù),cppunit_dll為動(dòng)態(tài)庫(kù),生成的庫(kù)文件為:

    cppunit.lib:靜態(tài)庫(kù)release版;
    cppunitd.lib:靜態(tài)庫(kù)debug版;
    cppunit_dll.lib:動(dòng)態(tài)庫(kù)release版;
    cppunitd_dll.lib:動(dòng)態(tài)庫(kù)debug版;

  另外一個(gè)需要關(guān)注的project是TestRunner,它輸出一個(gè)dll,提供了一個(gè)基于GUI 方式的測(cè)試環(huán)境,在CppUnit下, 可以選擇控制臺(tái)方式和GUI方式兩種表現(xiàn)方案。兩種方案分別如下圖所示:

  我們選擇GUI方式,所以我們也需要編譯這個(gè)project,輸出位置亦為lib文件夾。

  要使用CppUnit,還得設(shè)置好頭文件和庫(kù)文件路徑,以VC6為例,選擇Tools/Options/Directories,在Include files和Library files中分別添加%CppUnitPath%include和%CppUnitPath%lib,其中%CppUnitPath%表示 CppUnit所在路徑。本文這里分別填的是E:CPPUNITINCLUDE和E:CPPUNITLIB。

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