成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

闡述C++單元測試說明指導(dǎo)說明

開發(fā) 后端
測試驅(qū)動開發(fā)(TDD)是以測試作為開發(fā)過程的中心,它堅(jiān)持,在編寫實(shí)際代碼之前,先寫好基于產(chǎn)品代碼的測試代碼。。。

本文敘述背景為:C++單元測試, Visual C++ 6.0, Windows2000。文中敘述有誤之處,敬請批評指正,測試驅(qū)動開發(fā)式是極限編程的重要組成部分,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

XUnit,一個基于測試驅(qū)動開發(fā)的測試框架,它為我們在開發(fā)過程中使用測試驅(qū)動開發(fā)提供了一個方便的工具,使我們得以快速的進(jìn)行單元測試。XUnit的成員有很多,如JUnit,PythonUnit等。今天給大家介紹的CppUnit即是XUnit家族中的一員,它是一個專門面向C++的測試框架。

本文不對CppUnit源碼做詳細(xì)的介紹,而只是對CppUnit的應(yīng)用作一些介紹。在本文中,您將看到:
1、CppUnit源代碼的各個組成部分。
2、怎樣設(shè)置你的開發(fā)環(huán)境以能夠使用CppUnit。
3、怎樣為你的產(chǎn)品代碼添加測試代碼(實(shí)際上應(yīng)該反過來,為測試代碼添加產(chǎn)品代碼。在TDD中,先有測試代碼后有產(chǎn)品代碼),并通過CppUnit來進(jìn)行測試。

一、CppUnit源碼組成
 CppUnit測試框架的源代碼可以到 http://sourceforge.net/projects/cppunit/ 上下載。下載解壓后,主要的文件夾有: doc: CppUnit的說明文檔。另外,代碼的根目錄,還有三個說明文檔,分別是INSTALL,INSTALL-unix,INSTALL-WIN32.txt。  examples: CpppUnit提供的例子,也是對CppUnit自身的測試,通過它可以學(xué)習(xí)如何使用CppUnit測試框架進(jìn)行開發(fā)。

二、初識CppUnit測試環(huán)境
解壓源代碼包后,您一定急著想看看CppUnit到底是個什么樣?Ok,下面我們就來揭開CppUnit的神秘面紗:

1、進(jìn)入example文件夾,用VC打開examples.dsw。我們先來看看CppUnit自帶的測試?yán)印_@些例子都是針對CppUnit自身的單元測試集,一方面這是CppUnit作者開發(fā)CppUnit框架過程中寫的測試用例,另一方面,我們可以通過這些例子來學(xué)習(xí)如何在我們自己的工程中添加測試用例。

2、將CppUnitTestApp工程設(shè)為Active Project(Win32 Debug),編譯后運(yùn)行,則可以看到CppUnit的基于GUI方式進(jìn)行單元測試TestRunner的界面。點(diǎn)擊“Run”,
這是一個針對CppUnit的單元測試結(jié)果,它表明剛才我們做了11個測試,全部通過。  CppUnit將所有的單元測試按照樹的結(jié)構(gòu)來表示。在CppUnit中,最小的測試單元,稱為TestMethod測試方法,而多個相關(guān)的測試方法又可以組成一個TestCase測試用例。多個測試用例又組成TestSuite測試包。測試包互相嵌套在一起,就形成了上面我們看到的樹結(jié)構(gòu)。我們可以選擇其中任意的樹節(jié)點(diǎn)來進(jìn)行單元測試。

3、將CppUnitTestMain工程設(shè)置為Active Project(Win32 Debug),編譯并運(yùn)行,我們來看看另一個單元測試的環(huán)境 這是一個基于文本方式的單元測試環(huán)境。CppUnit提供了幾種測試環(huán)境,一種基于文本,一種基于GUI。

 4、將HostApp工程設(shè)置為Active Project(Win32 Debug),編譯運(yùn)行。這亦是一個對CppUnit自身進(jìn)行的測試,只不過它向我們演示的是各種失敗的測試。在基于GUI的測試環(huán)境中,若測試不成功,進(jìn)度條顯示紅色,反之則為綠色。從測試結(jié)果我們可以看到失敗的單元測試名稱,引起測試不能通過的原因,以及測試失敗的語句所在的文件及所在行數(shù)。

三、C++單元測試設(shè)置 認(rèn)識了CppUnit的測試環(huán)境,想必你已經(jīng)是在磨拳擦掌,準(zhǔn)備在你的開發(fā)過程中感受一下測試驅(qū)動開發(fā)的感覺了。不過,在使用CppUnit前,還需要設(shè)置一下你的開發(fā)環(huán)境。

 1、CppUnit的lib和dll
CppUnit為我們提供了兩套框架庫,一個為靜態(tài)的lib,一個為動態(tài)的dll。 在開發(fā)中我們可以根據(jù)實(shí)際情況作出選擇。進(jìn)入src文件夾,打開CppUnitLibraries.dsw。分別編譯這兩個project,輸出位置均為lib文件夾。

另外一個需要關(guān)注的project是TestRunner,它輸出一個dll,提供了一個基于GUI 方式的測試環(huán)境,即前面我們提到的兩種測試環(huán)境之一。我們也需要編譯這個project,輸出位置亦為lib文件夾。 #t#

為了方便開發(fā),我們把這些編譯出來的lib和dll(包括Debug版和Release版) copy 到我們自己建立的一個文件夾中(當(dāng)然你也可以不這么做),例如F:\cppunit1.9.0\lib\,同時我們也把CppUnit源代碼中include文件夾copy到我們自己的include文件夾下。然后在VC的tools/options/directories/include files和library files中設(shè)置include路徑和lib路徑。最后別忘了在你的project中l(wèi)ink正確的lib。

2、在你的C++單元測試中打開RTTI開關(guān)。 具體位置Project Settings/C++/C++ Language。

3、為TestRunner.dll設(shè)置環(huán)境變量
TestRunner.dll為我們提供了基于GUI的測試環(huán)境。為了讓我們的測試程序能正確的調(diào)用它,TestRunner.dll必須位于你的測試程序的路徑下。但最簡單的方法是在操作系統(tǒng)的環(huán)境變量Path中添TestRunner.dll的路徑,這樣是最省事的。

責(zé)任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

2010-01-11 14:13:03

C++學(xué)習(xí)方法

2010-01-12 16:12:47

C++單元測試

2010-05-27 13:48:30

SVN使用說明

2010-03-03 15:57:23

2010-03-04 15:04:35

2010-01-13 15:51:44

C++編程語言

2010-01-12 09:39:58

C++語言

2010-01-07 15:26:29

JSON結(jié)構(gòu)

2010-01-15 14:10:42

C++單元測試

2010-01-08 16:06:33

C++中struct

2010-01-13 17:12:26

C++編譯器

2010-01-08 13:16:54

Json入門文檔

2010-01-11 15:55:51

C++語言

2010-01-12 15:56:25

C++軟件

2022-08-05 09:30:57

單元測試C++

2010-01-12 15:46:29

測試C++ Test

2010-02-03 17:37:30

Python語法

2010-02-04 13:52:30

Android ap

2012-06-18 10:03:46

Visual Stud

2017-01-14 23:42:49

單元測試框架軟件測試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲福利一区 | 少妇精品久久久久久久久久 | 国产精品视频999 | 99资源站 | 成人欧美一区二区三区黑人孕妇 | 国产精品自产拍在线观看蜜 | 91一区 | 国产精品69久久久久水密桃 | 蜜桃视频在线观看免费视频网站www | 欧美一级在线 | 亚洲性视频 | 91在线看| 一区二区三区国产视频 | 日韩视频精品在线 | 午夜精品视频在线观看 | 欧美日韩黄 | 在线视频亚洲 | 久久99视频| 午夜专区| 九九久久久 | 一区二区三区视频在线观看 | jlzzjlzz国产精品久久 | 国产精品国产三级国产aⅴ中文 | 色噜噜色综合 | 欧洲精品码一区二区三区免费看 | 祝你幸福电影在线观看 | 国产免费视频 | 久久av一区二区三区 | 青青草社区 | 污免费网站 | 日本亚洲欧美 | 人人爽人人草 | 日日夜夜操天天干 | 天天天操操操 | 无码日韩精品一区二区免费 | 精品久久久久久亚洲国产800 | 成年人网站免费 | 高清欧美性猛交 | 国产精品网址 | 91精品中文字幕一区二区三区 | 日日爽|