C 單元測試庫QuickTest簡介

2021-06-20 13:58:44 字數 2341 閱讀 5036

quicktest 是一種簡單的用於c++單元測試的框架,它非常簡潔的包含在乙個標頭檔案當中,所以可以非常方便的放入到專案當中。使用quicktest可以使用盡可能少的**,簡單地進行單元測試。

更多相關資訊訪問quicktest的主頁quicktest

乙個非常直觀和簡單的使用

qt_test(testsquaredints)

(1)在需要測試的**中加入標頭檔案

#include

(2)編寫巨集名為"qt_test"的** 例如

qt_test(mytest)

(3)開啟巨集的基礎上執行單元測試 例如

#include int main(int argc, char* argv)

例如,我們現在有30個測試通過,我可以可以獲得以下的反饋資訊

[-------------- running unit tests --------------]

results: 30 succeeded, 0 failed

[-------------- unit tests finished -------------]

如果其中的乙個測試未能通過,可以獲得如下提示資訊 例如

qt_test(testfoursqr)

獲得如下資訊:

[-------------- running unit tests --------------]

main.cpp(5): 'testfoursqr' failed: value1(16) should equal value2(20)

results: 29 succeeded, 1 failed

[-------------- unit tests finished -------------]

測試失敗的資訊包括測試檔案的名稱,導致測試失敗的語句所在的行,該單元測試的名稱,傳遞給單元測試的引數的值的情況。

注意visual studio的使用者可以雙擊測試失敗資訊,視窗會直接跳轉到單元測試失敗的**。下面介紹一些跟自動化測試有關的內容。

下面這個例子測試乙個船隻是否能夠被控制移動

qt_test(testshipthrusters)

下面這個例子介紹測試**的重複使用方式。這個例子首先測試船隻的位置是否正確,然後測試船隻所受的反向作用,先在前進方向給一定的力和時間,然後反方向作相同的工作,測試是否回到起點。

struct shipfixture

~shipfixture()

ship ship;

point startpos;};

qt_test(testshipsetposition)

qt_test(testshipreversethrottle)

通常而言,**生成後需要立即進行單元測試。在**生成系統中,這一任務可以自動完成,許多構建環境都能夠支援這一功能,包括visual studio,make,scons。或許需要生成乙個單獨的可執行檔案,該檔案只包含單元測試,例如,可以用乙個簡單的main檔案進行測試。

#include int main(int argc, char* argv)

和test.cpp檔案一起編譯main檔案,生成乙個可執行檔案,每一次重寫main檔案,確保生成的可執行檔案時最新的。

假如生成的可執行檔名為'myunittests.exe'.在make或者scons當中,可以加入一條」編譯完成main之後立即執行測試檔案的規則。在visual studio當中(只支援7.0及以上版本),在生成後事件(專案設定->生成事件->生成後事件)中的命令列中加入類似

'.\debug\myunittests.exe'

或者

'.\$(outdir)\$(targetfilename)'

的命令

編譯完成之後會自動執行單元測試

對於visual studio而言,執行生成後事件會將quicktest的輸出資訊顯示到visual studio的輸出視窗當中,可以直接雙擊相關資訊跳轉到相關的**段。(目前支援release模式下c++中__file__巨集被擴充套件為相對路徑的情況,在debug模式下被擴充套件為絕對檔名可能會出錯)

c 單元測試

資料庫單元測試 1.資料庫設計 person id int,主鍵 username password age 2.新建乙個專案 2.1.定義person類 public class person set public string username set public string passwor...

C 單元測試

單元測試,或者更大一些的自動化測試,對提高軟體質量是有很大幫助的。通過一系列預先設計的規則,就可以覆蓋大量的測試點。尤其是對重構一類的任務,確保修改前後系統行為不變很重要,而修改後的回歸測試工作量又極其繁重,此時單元測試,或者自動化測試就能體現出無以倫比的效率。我在2005年學python不久,就鬱...

C 單元測試

學歷代表你的過去,能力代表你的現在,學習代表你的將來 十年河東,十年河西,莫欺少年窮 學無止境,精益求精 廢話咱也不多說,直接進入正題 首先說說單元測試的好處 今天說說c 的單元測試特點 1 單元測試的類名用 testclass 標註 2 單元測試的方法名用 testmethod 標註 3 單元測試...