Google Test是C++常用单元测试框架,支持多种安装方式如包管理器、源码编译及CMake FetchContent;通过TEST宏定义测试用例,EXPECT_EQ进行断言;可使用TEST_P和INSTANTIATE_TEST_SUITE_P实现参数化测试;结合CMake编译链接gtest_main生成可执行文件并运行测试,输出结果清晰,推荐将其集成到日常开发中以提升代码质量。

在C++开发中,单元测试是保证代码质量的重要手段。Google Test(也称gtest)是目前最流行的C++单元测试框架之一,它提供了丰富的断言、测试用例组织方式以及测试运行机制,帮助开发者快速构建可靠的测试。
Google Test本身是一个开源库,可以通过多种方式集成到项目中:
示例CMake配置片段:
include(FetchContent) FetchContent_Declare( googletest URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip ) FetchContent_MakeAvailable(googletest)
假设我们有一个简单的加法函数需要测试:
立即学习“C++免费学习笔记(深入)”;
int add(int a, int b) {
return a + b;
}创建一个测试文件test_add.cpp:
#include <gtest/gtest.h>
// 被测函数
int add(int a, int b);
TEST(MathTest, AdditionWorks) {
EXPECT_EQ(add(2, 3), 5);
EXPECT_EQ(add(-1, 1), 0);
EXPECT_EQ(add(0, 0), 0);
}说明:
当测试逻辑相似但输入不同时,可以使用参数化测试避免重复代码。
class AddTest : public ::testing::TestWithParam<std::tuple<int, int, int>> {};
TEST_P(AddTest, HandlesVariousInputs) {
auto [input_a, input_b, expected] = GetParam();
EXPECT_EQ(add(input_a, input_b), expected);
}
INSTANTIATE_TEST_SUITE_P(
NormalCases, AddTest,
::testing::Values(
std::make_tuple(2, 3, 5),
std::make_tuple(-1, 1, 0),
std::make_tuple(0, 0, 0)
)
);这样每个参数组合都会生成一个独立的测试实例,便于排查具体哪组数据出错。
使用CMake链接gtest库:
add_executable(test_all test_add.cpp) target_link_libraries(test_all gtest_main)
编译后运行可执行文件:
./test_all
输出会显示哪些测试通过或失败,并统计结果。添加--gtest_filter=*可过滤运行特定测试。
基本上就这些。Google Test功能强大,支持死亡测试、类型参数化、自定义断言等高级特性,适合从小型工具到大型系统的测试需求。关键是把测试变成日常开发的一部分,持续提升代码健壮性。
以上就是C++怎么使用Google Test进行单元测试_C++单元测试框架与Google Test使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号