Linux下Cppunit的簡單運用

 

操作系統:

軟件版本:cppunit-1.12.0.tar.gz

代碼調試通過

 

一、           CppUnit的原理

先簡單介紹幾個CppUnit的基本術語:

1、Fixture:一個或一組測試用例的測試對象。可以是你要測試的對象或者函數。

2、TestCase:測試用例。是對測試對象的某個功能或流程編寫的測試代碼。對一個Fixture,可能有多個測試用例。

3、TestSuite:同時運行的測試用例的集合。可以是一個fixture的多個測試函數、也可以是多個fixture的所有測試用例。

使用時,在測試的主文件中將TestCase註冊到TestSuite中,並運行。

 

二、 下載與安裝

可以在http://sourceforge.net/projects/cppunit/找到最新的源碼並下載至本地。我下載的版本是cppunit-1.12.0.tar.gz

 

解壓:tar -zxvf cppunit-1.12.0.tar.gz

進入cppunit-1.12.0的目錄

//因爲我是非root用戶,沒有對/usr/local/lib//usr/include的相應權限,//所以將安裝的根目錄設置爲我的個人目錄

.configure –prefix=/home/me

make

make install    

這樣,庫文件就複製到/home/me了。

還要將cppunit-1.12.0中的頭文件include複製到/home/me中。

 

三、利用cppunit建立測試的一般框架

通常將測試代碼和被測的代碼放在不同的工程裏面,以免對我們要測試的代碼造成污染,這也是運用cppunit的優點之一吧。

這樣我們便有兩個工程:

其一、待測工程:~/money

有兩個文件:

Money.h

 Money.cpp

測試工程:~/MoneyTest

該工程下有三個文件:

Money_Test.h

Money_Test.cpp

Money_Test_Main.cpp

這三個文件的作用分別是:

Money_Test.h:聲明一個TestSuite,並將你所需要的測試用例都在此處進行聲明

Mone_Test.cpp:編寫測試用例

Money_Test_Main.cpp:運行測試。該文件與具體的測試用例無關。

 

CppUnit 提供的驗證成功失敗的方式有:

       CPPUNIT_ASSERT(condition)                              

// 確信condition爲真

       CPPUNIT_ASSERT_MESSAGE(message, condition)   

// condition爲假時失敗, 並打印message

       CPPUNIT_FAIL(message)                                    

// 當前測試失敗, 並打印message

       CPPUNIT_ASSERT_EQUAL(expected, actual)            

// 確信兩者相等

       CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual)      

// 失敗的同時打印message

       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected, actual, delta)      

// expectedactual之間差大於delta時失敗

 

關於CPPUNIT_ASSERT_EQUAL還有一點要說明,該宏對於expectedactual是有要求的,也就是所謂的Requirement

  • 具有相同的類型(比如都是std::string
  • 可以使用<<序列化到std::strstreamassertion_traits<T>::toString中指明)
  • 能用==作比較(assertion_traits<T>::equal中指明)

不過,後兩條可以通過爲assertion_traits定製特化版本去除掉。

四、編譯與調試

編譯、鏈接動態庫:

g++ -o test Money_Test.cpp Money_Test_Main.cpp ~/money/Money.cpp -I ~/money -I ~/cppunit/include -lcppunit -ldl -L ~/cppunit/lib

運行前要將共享庫的目錄放到LD_LIBRARY_PATH中。

export LD_LIBRARY_PATH=~/cppunit/lib:$LD_LIBRARY_PATH

運行:

       ./test

測試結果:

OK (4 tests)

說明所寫的4個測試用例均成功。

 

 

參考資料

Tx7do@上海半丁 Linux下的CppUnit HelloWorld手記

李羣:便利的開發工具 CppUnit 快速使用指南

http://www.ibm.com/developerworks/cn/linux/l-cppunit/index.html

CppUnit使用指南

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章