程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 闡述C++單元測試說明指導說明

闡述C++單元測試說明指導說明

編輯:C++入門知識

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

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

本文不對CppUnit源碼做詳細的介紹,而只是對CppUnit的應用作一些介紹。在本文中,您將看到:
1、CppUnit源代碼的各個組成部分。
2、怎樣設置你的開發環境以能夠使用CppUnit。
3、怎樣為你的產品代碼添加測試代碼實際上應該反過來,為測試代碼添加產品代碼。在TDD中,先有測試代碼後有產品代碼),並通過CppUnit來進行測試。

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

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

1、進入example文件夾,用VC打開examples.dsw。我們先來看看CppUnit自帶的測試例子。這些例子都是針對CppUnit自身的單元測試集,一方面這是CppUnit作者開發CppUnit框架過程中寫的測試用例,另一方面,我們可以通過這些例子來學習如何在我們自己的工程中添加測試用例。

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

3、將CppUnitTestMain工程設置為Active ProjectWin32 Debug),編譯並運行,我們來看看另一個單元測試的環境 這是一個基於文本方式的單元測試環境。CppUnit提供了幾種測試環境,一種基於文本,一種基於GUI。

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

三、C++單元測試設置 認識了CppUnit的測試環境,想必你已經是在磨拳擦掌,准備在你的開發過程中感受一下測試驅動開發的感覺了。不過,在使用CppUnit前,還需要設置一下你的開發環境。

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

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

  • 列舉C++編譯器支持的編譯環境
  • 筆者帶您走進C++編程門說明
  • 淺析C++編譯器怎樣實現異常處理問題
  • 深度了解C++編程技巧說明介紹
  • 大致介紹C++語言相關使用及其錯誤修改

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

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

3、為TestRunner.dll設置環境變量
TestRunner.dll為我們提供了基於GUI的測試環境。為了讓我們的測試程序能正確的調用它,TestRunner.dll必須位於你的測試程序的路徑下。但最簡單的方法是在操作系統的環境變量Path中添TestRunner.dll的路徑,這樣是最省事的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved