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* 字串有同樣的內容*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.assert_strne(str1,str2);//兩個char* 字串有不同的內容
assert_strcaseeq(str1,str2); //兩個char* 字串有同樣的內容,忽略大小寫
assert_strcasene(str1,str2); //兩個char* 字串有不同的內容,忽略大小寫
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...