您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > cppUnit
CppUnit源碼解讀
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/11/29 15:09:11 ] 推薦標(biāo)簽:

這一系列的文章摘選自筆者的《CppUnit源碼解讀》。 CppUnit是一個(gè)用c++語(yǔ)言實(shí)現(xiàn)的Open Source的單元測(cè)試框架,屬于xUnit系列中的一員,是從JUnit移植過(guò)來(lái)的。

[引言]

如何將諸多技術(shù)綜合運(yùn)用到一個(gè)實(shí)際的framework中來(lái),筆者以為,CppUnit為我們提供了一個(gè)難易適中的參考范例。這應(yīng)該是一個(gè)很好的例子,因?yàn)樗簧鯊?fù)雜,卻匯聚了一個(gè)framework所必需的某些設(shè)計(jì)思想以及實(shí)現(xiàn)技巧。在這里,我們可以看到STL的靈活使用(包括一些簡(jiǎn)單的traits技法),Design Pattern的綜合運(yùn)用(比如:Composite,F(xiàn)actory,Decorator,Singleton,Observer等)。

當(dāng)然,也應(yīng)該指出,由于CppUnit還在不斷改進(jìn)中,其代碼中未免還有“敗筆”及不盡如人意之處。但是,瑕不掩瑜,并且從中我們也可以感受到一個(gè)成熟框架的演進(jìn)過(guò)程。

由于有過(guò)一點(diǎn)framework的設(shè)計(jì)經(jīng)驗(yàn)和體會(huì),筆者在閱讀CppUnit源碼的過(guò)程中,時(shí)常能有共鳴,并且對(duì)于框架的設(shè)計(jì)者在某些細(xì)節(jié)的處理方法,也深以為然,偶爾也有“英雄所見(jiàn)略同”的感嘆。希望可以通過(guò)筆者的講解,使大家也能夠同樣有親歷之感。

[CppUnit的簡(jiǎn)單身世]

CppUnit是xUnit系列中的c++實(shí)現(xiàn)版本,它是從JUnit移植過(guò)來(lái)的,第一個(gè)移植版本由Michael Feathers完成,相關(guān)信息可以在http://www.xprogramming.com/software.htm找到。它是操作系統(tǒng)相關(guān)的,隨后,Jerome Lacoste將之移植到了Unix/Solaris,在上述連接中也能找到該版本的相關(guān)信息。CppUnit項(xiàng)目是基于這些版本建立起來(lái)的。有關(guān)CppUnit的討論可以在http://c2.com/cgi/wiki?CppUnit找到,在那里你還可以找到CppUnit先前的版本以及許多其它操作系統(tǒng)環(huán)境下的移植版本。這個(gè)庫(kù)受GNU LGPL(Lesser General Public License)的保護(hù)。作者包括:Eric Sommerlade sommerlade@gmx.net,Michael Feathers,mfeathers@objectmentor.com,Jerome Lacoste,lacostej@altern.org,J.E. Hoffmann ,Baptiste Lepilleur ,Bastiaan Bakker ,Steve Robbins

這里所選用的是CppUnit 1.8.0版,你可以從http://sourceforge.net/projects/cppunit/下載到新版本。

[CppUnit的總體構(gòu)成]

作為一個(gè)完整的CppUnit framework,雖然源碼所在的實(shí)際路徑可能不盡相關(guān),但從邏輯上講它們被劃為如下幾個(gè)部分:

    core:CppUnit的核心部分
    output:掌管結(jié)果輸出
    helper:一些輔助類(lèi)
    extension:作為單元測(cè)試的延伸,對(duì)CppUnit core部分的擴(kuò)展(比如:常規(guī)測(cè)試,重復(fù)測(cè)試)
    listener:監(jiān)視測(cè)試進(jìn)程和測(cè)試結(jié)果
    textui:一個(gè)運(yùn)行單元測(cè)試的文本環(huán)境
    portability:提供針對(duì)不同平臺(tái)的移植設(shè)置

上述所有的內(nèi)容均被置于CppUnit名字空間之內(nèi)。

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