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 單元測試...