c 單元測試工具之 gtest

2021-06-12 02:58:25 字數 1493 閱讀 6692

gtest是谷歌為c++開發的單元測試框架,該框架基於xunit架構。gtest提供了較豐富的測試特性,且其命令列方式輸出介面友好美觀,是c++單元測試工具的較佳選擇。

先從這裡

./configure

make

這裡google沒有提供make install行為來安裝,我們需要手動安裝。繼續執行以下命令:

cp lib/.lib/libgtest_main.s* /usr/lib

cp lib/.lib/libgtest.s* /usr/lib

cp -r include/gtest /usr/include

這幾條命令將我們需要的庫檔案和標頭檔案安裝到了標準路徑下,接下來就可以使用了。

且看下面一段**:

/* stdctest.cpp */

#include #include #include test(stdc, atoi)

test(stdc, strcat)

這段**示例了編寫測試用例的方法,這裡測試的是兩個c標準庫函式——atoi和strcat,注意**中包含了標頭檔案,包含該標頭檔案方可使用gtest。可以看到,寫單元測試用例很簡單,使用test巨集就可以了,該巨集有兩個引數是需要你理解的,第乙個引數表示乙個test case(某些測試理論中稱之為suite即測試集合),第二個引數表示該測試用例的具體含義,兩個引數的命名遵循一般變數命名規則即可。

同乙個test case可以有多個測試用例,同乙個檔案也可有多個test case,一般建議將不同的test case放在不同的檔案中,即每個檔案只包含乙個test case,檔名為test case名。

將這段**儲存成檔案,執行如下命令編譯:

g++ stdctest.cpp -o stdctest -lgtest_main -lpthread
編譯後生成可執行檔案,這裡需要鏈結gtest_main和pthread這兩個庫,gtest_main是gtest的庫,它依賴於posix執行緒,所以還需鏈結pthread執行緒庫。執行可執行檔案後得到如下輸出表明測試通過:

綠色的一片,看起來很舒服!

可以看到,gtest的使用非常簡單!不過這裡只是簡單示例而已,gtest還有很多高階特性,可查閱官方文件

了解。其實大多數初學者並沒有單元測試的概念,也體會不出單元測試的好處,也就寫不出好的測試用例,這些都需要慢慢領會,不然google也不會大費周折的整出這麼一玩意兒來。

在編寫**之餘,可一邊編寫單元測試,即邊開發邊除錯,且用單元測試來除錯,這樣開發時沒想到的問題可能會馬上暴露出來,這是一種理念,好的理念需要逐步接收,單元測試就是這樣一種理念,好的工具同樣也要學會使用,有好的工具來輔助開發是程式設計人員的幸運。

Centos下配置單元測試工具gtest

配置過程如下 1 解壓gtest 1.6.0 2 檢視檔案內容,找到make檔案,進行make,生成乙個測試程式,包含gtest main.a檔案 3 測試程式執行如下 4 新建乙個資料夾,gtest program,將gtest 1.6.0中的include檔案拷過來。5 在gtest progr...

Centos下配置單元測試工具gtest

配置過程如下 1 解壓gtest 1.6.0 2 檢視檔案內容,找到make檔案,進行make,生成乙個測試程式,包含gtest main.a檔案 3 測試程式執行如下 4 新建乙個資料夾,gtest program,將gtest 1.6.0中的include檔案拷過來。5 在gtest progr...

c 單元測試框架之gtest

搞了3個禮拜的單元測試了,把最近所學所用的東西記錄一下,順便為公司接下來要做的單元測試培訓做下背書。首先什麼是單元測試。在物件導向程式設計中,通常乙個類會承擔乙個單一的職責,所以我們可以用類來劃分單元。單元測試,就是針對專案中的各個類進行測試。它側重於發現單元內部的邏輯錯誤,屬於白盒測試的範疇。單元...