gtest測試框架使用詳解 GTest常用斷言

2021-10-11 08:54:33 字數 1347 閱讀 1430

gtest 是一套用於編寫c++測試的框架,支援很多好用的特性,包括自動識別測試、豐富的斷言、生成報告等。

gtest 斷言是類似於函式呼叫的巨集。經常使用斷言來測試類或函式的功能。當斷言失敗時,gtest則列印出斷言所在的檔案、行號,以及失敗資訊。

判斷實際結果與預期結果是否相符的機制稱為斷言。

gtest 中斷言的巨集可以分為兩類,一類是assert,一類是expect。兩者區別在於:

一般 expect_* 更常用,它可以輸出測試的多個失敗,常用的斷言如下,包括布林型別、整數型別、浮點型別、字串等。

expect_true(ret):ret == trueexpect_false(ret):ret == false
expect_eq(expected, actual):expected == actualexpect_ne(expected, actual):expected != actualexpect_float_eq(expected, actual):(float)expected == actualexpect_double_eq(expected, actual):(double)expected == actualexpect_near(var1, var2, tol):abs(var1 - var2) <= tol
當判斷浮點數時,推薦使用後三個。

expect_lt(var1, var2):var1 < var2expect_gt(var1, var2):var1 > var2expect_le(var1, var2):var1 <= var2expect_ge(var1, var2):var1 >= var2
expect_streq(s1, s2):s1 == s2expect_strne(s1, s2):s1 != s2expect_strcaseeq(s1, s2):s1 == s2expect_strcasene(s1, s2):s1 != s2
其中,最後的 expect_strcaseeq,表示兩個字串字母全部轉換為大小或者小寫後相同;

expect_strcasene,表示兩個字串字母全部轉換為大小或者小寫後不相同。即不區分大小寫的判斷。

gtest測試框架

gtest測試框架,搭建參考 2.進入 googletest 1.8.0 googletest 刪除不需要的檔案,完成後 sample目錄下只保留sample1 檔案,完成後make得到gtest.a和gtest main.a和testbin。gtest.a是不帶main函式的庫,需要自己寫用於測試...

測試框架之GTest

gtest用法和cppunit用法差不多,個人比較習慣gtest,使用比cppunit方便些。主要通過巨集test f定義測試用例,通過expect 系列和assert 系列巨集進行檢測。1 原始碼編譯 2 建立乙個測試工程,將gtest include新增到頭檔案路徑中。include資料夾可拷貝...

谷歌測試框架gtest

簡單使用可以參考中的windwos示例。批量執行case,如下示例 單元測試case,可以是乙個介面的一系列測試case 2017 05 19 cwp demo.h ifndef demo h define demo h include gtest gtest.h class testdemo pu...