Google Test入门关键是快速跑通首个测试用例。需下载源码、用CMake编译生成libgtest.a和libgtest_main.a;编写含TEST宏的测试文件;链接库并添加-pthread编译运行;成功输出2个测试通过结果。

Google Test(GTest)是C++最主流的单元测试框架,轻量、跨平台、与主流构建系统兼容好。入门关键不是写复杂断言,而是快速跑通第一个测试用例——从编译链接到执行验证,一步都不能跳。
GTest官方推荐以源码方式集成(避免ABI兼容问题)。从GitHub仓库克隆或下载最新 release 源码:
googletest 目录,建议用 CMake 构建(支持 Windows/Linux/macOS)build/ 子目录,运行:cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
libgtest.a(静态库)和 libgtest_main.a(含默认 main 函数)创建 hello_test.cpp,内容如下:
#include <gtest/gtest.h>
// 被测函数(可放在单独头文件中)
int add(int a, int b) { return a + b; }
// 测试用例:TEST(测试套名, 测试名)
TEST(AddTest, PositiveNumbers) {
EXPECT_EQ(add(2, 3), 5);
EXPECT_EQ(add(0, 0), 0);
}
TEST(AddTest, NegativeNumbers) {
EXPECT_EQ(add(-1, -1), -2);
}
注意:
– TEST 宏自动生成测试函数和注册逻辑,无需手动写 main()
– EXPECT_* 是非致命断言(失败继续执行),ASSERT_* 是致命断言(失败立即退出当前测试)
假设 GTest 头文件在 ./googletest/include,静态库在 ./googletest/build/lib:
立即学习“C++免费学习笔记(深入)”;
g++ -I./googletest/include hello_test.cpp -L./googletest/build/lib -lgtest -lgtest_main -pthread -o hello_test && ./hello_test
gtest.lib 和 gtest_main.lib,并启用多线程运行时(/MT 或 /MD)[==========] Running 2 tests from 1 test suite.[ RUN ] AddTest.PositiveNumbers[ OK ] AddTest.PositiveNumbers (0 ms)[ RUN ] AddTest.NegativeNumbers[ OK ] AddTest.NegativeNumbers (0 ms)
基础断言覆盖大多数场景:
EXPECT_EQ(val1, val2):比较相等(内置类型或重载了 operator== 的类)EXPECT_TRUE(condition) / EXPECT_FALSE(condition)
EXPECT_STREQ(str1, str2):C风格字符串内容比较EXPECT_THROW(statement, exception_type):验证是否抛出指定异常小技巧:
– 使用 TEST_F 配合测试夹具(fixture)管理共享资源(如临时文件、对象实例)
– 添加 --gtest_filter=AddTest.* 运行指定测试子集
– 加 --gtest_list_tests 查看所有已注册测试用例名
基本上就这些。不复杂但容易忽略的是链接 -pthread(Linux/macOS 必须)和正确包含头文件路径。跑通第一个 EXPECT_EQ 后,剩下的就是按需组织测试逻辑了。
以上就是C++如何使用Google Test框架进行单元测试?(GTest入门)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号