在 Ubuntu 使用 Google Test

要使用 Google Test,首先要取得程式碼

原始碼可以在 Releases · google/googletest 下載,在 Ubuntu 則可以透過 libgtest-dev 套件取得

apt install libgtest-dev -y

套件會安裝在 /usr/src/gtest 目錄下

cd /usr/src/gtest

透過 cmake 進行建置設定,產生 makefile

cmake CMakeLists.txt

最後進行建置

make

成功建置後會產生 libgtest.a 及 libgtest_main.a 兩個檔案

接著建立一個檔案測試一下

unittest.cpp

#include <gtest/gtest.h>

#define HELLOWORLD "Hello World"

TEST(GoogleTest, HelloWorld) {
    ASSERT_EQ("Hello World", HELLOWORLD);
}

int main(int argc, char **argv) {
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

第一行引用 gtest 的 header,接著定義 HELLOWORLD 代表實際結果

Test 代表一個測試案例,HelloWorld 代表此測試案例的名稱,GoogleTest 則為多個測試案例的群組名稱,常見用法是以測試對象的 class 名稱命名。測試案例的內容可以用 ASSERT_EQ 來判斷期望值與實際值是否相等

最後一段是初始化 Google Test 及執行所有的測試案例。

寫好測試檔案,就可以進行測試程式的建置

g++ unittest.cpp -o unittest -Igtest/include -Lgtest/lib -lgtest -lpthread

建置成功後,執行測試程式

./unittest

測試結果

留言