36K+ 全球开发者的测试神器!Google 出品,质量与信任的代名词!
项目概览
GoogleTest 是 Google 开源的 C++ 单元测试框架,提供丰富的断言库、测试固件(fixtures)、参数化测试等能力,广泛应用于工业级 C++ 项目的测试驱动开发(TDD)中。
项目地址:
https://github.com/google/googletest
核心特性
 跨平台支持:兼容 Linux/macOS/Windows 及嵌入式系统
 断言扩展:支持 EXPECT_*(非致命错误)与 ASSERT_*(致命错误)两类断言
 死亡测试:验证程序崩溃或异常退出行为
 参数化测试:通过 TEST_P 实现数据驱动测试
 事件监听:支持自定义测试生命周期事件监听器
 Mocking 集成:无缝对接 GoogleMock 模拟框架(文档:
https://github.com/google/googletest/blob/main/docs/gmock_cook_book.md)
快速上手
1. 安装依赖
bash# 克隆仓库
git clone https://github.com/google/googletest.git
cd googletest
# 生成构建文件(以 CMake 为例)
cmake -B build -DCMAKE_CXX_STANDARD=11
cmake --build build2. 编写测试用例
创建 sample_test.cc 文件,粘贴以下代码(代码块需在编辑器中保持等宽字体显示):
cpp#include <gtest/gtest.h>
TEST(MathTest, Addition) {
    EXPECT_EQ(2 + 3, 5);  // 非致命断言
    ASSERT_NE(5, 0);      // 致命断言(若失败则终止当前测试)
}
TEST(MathTest, Division) {
    ASSERT_DEATH({ int x = 1 / 0; }, ".*");  // 死亡测试
}3. 编译并运行
bashg++ -std=c++11 sample_test.cc -lgtest -lgtest_main -pthread -o test
./test关键配置项
 C++ 标准支持:需 ≥ C++11
 线程安全:默认启用多线程支持(需链接 -pthread)
 输出控制:通过 --gtest_output=json:report.json 生成 JSON 报告
项目亮点
 超过 100K+ GitHub Stars,行业标准级测试框架
 与 Bazel/CMake 构建系统深度集成
 提供 XML/JSON 测试报告,便于 CI 集成(如 Jenkins)
! 注意事项
- 静态库链接顺序:确保 -lgtest_main 在测试源文件后声明
 - 线程安全:多线程测试时需显式启用 GTEST_IS_THREADSAFE 宏
 - 兼容性:GCC ≥ 5.0 / Clang ≥ 3.8 / MSVC ≥ 2015
 
进阶资源
 官方文档:
https://google.github.io/googletest/
 高级技巧:
https://github.com/google/googletest/blob/main/docs/advanced.md(如自定义 main() 函数)
 Mocking 指南:
https://google.github.io/googletest/gmock_cook_book.html
通过以上步骤,可快速集成 GoogleTest 并构建健壮的 C++ 单元测试体系。
相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
 - Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
 - Spring Boot+Pinot实战:毫秒级实时竞价系统构建
 - SpringBoot敏感配置项加密与解密实战
 - SpringBoot 注解最全详解,建议收藏!
 - Spring Boot 常用注解大全:从入门到进阶
 - SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
 - Springboot集成Kafka原理_spring集成kafka的原理
 - Spring Boot中@Data注解的深度解析与实战应用
 - 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
 
