GoogleTest框架 使用總結 一

2021-08-15 15:48:25 字數 1769 閱讀 6492

18.02.24二次整理。(基礎部分全部完畢)

18.02.16整理。

閒暇整理,不定期更新~

關於斷言(assert_x巨集)與預期結果(expect_x)的區別,谷歌官方給出了很好的解釋:

翻譯成中文,就是斷言未通過,斷言會中斷之後當前測試函式的測試**(因為之後的測試沒有任何意義),而普通的expect會報告出這個錯誤,仍然會繼續執行**。

assert_x巨集列舉如下:

條件判斷:

assert_true(condition); //條件為真,則通過

assert_false(condition);//條件為假,則通過

值判斷:

assert_eq(val1,val2); //val1 == val2

assert_ne(val1,val2); //val1 != val2

assert_lt(val1,val2); //val1 < val2

assert_le(val1,val2); //val1 <= val2

assert_gt(val1,val2); //val1 > val2

assert_ge(val1,val2); //val1 >= val2

字串判斷:

assert_streq(str1,str2); //兩個char* 字串有同樣的內容

assert_strne(str1,str2);//兩個char* 字串有不同的內容

assert_strcaseeq(str1,str2); //兩個char* 字串有同樣的內容,忽略大小寫

assert_strcasene(str1,str2); //兩個char* 字串有不同的內容,忽略大小寫

*streq* and *strne* also accept wide c strings (wchar_t*). if a comparison of two wide strings fails, their values will be printed as utf-8 narrow strings.

a null pointer and an empty string are considered different.

只需將斷言(assert)換成預期(expect)即可,用法跟斷言完全一致。

例子:

expect_streq(str1,str2) //兩個char* 字串有同樣的內容

test()與test_f()的區別其實並不明顯,對於普通的(面向過程)函式測試(不為類的成員函式),直接用test即可。

test_f主要用於混合式測試(非面向過程)。對於類的測試,google官方建議我們使用繼承於testing::test這個類來實現我們自己的測試類。官方對於佇列的測試類如下:

class queuetest : public ::testing::test 

// virtual void teardown() {}

queue q0_;

queue q1_;

queue q2_;

};

下面為官方給出的測試**:

test_f(queuetest, isemptyinitially) 

test_f(queuetest, dequeueworks)

初識googletest測試框架用法

其它平台編譯操作 git clonemkdir build cd build cmake.exe g mingw makefiles path to googletest cd path to googletest mingw32 make j 8 參考 cmake指定mingw編譯器的方法 新建乙...

Google Test 使用筆記

編譯gtest 使用vs2015開啟gtest.sln 我的是在目錄googletest master googletest msvc 2010下 在debug release兩個模式下都編譯一下。編譯後,在msvc gtest 下有debug release兩個資料夾。編譯器報 不是有效的win3...

googleTest安裝和使用

環境 windows7 vs2013 一 安裝 2.解壓googletest,目錄googletest msvc 下是visual studio的工程檔案,使用vs開啟,分別用debug和release模式編譯 3.編譯完成後進入googletest msvc gtest 資料夾下,有debug和r...