Google Test是C++常用单元测试框架,支持丰富断言和CMake集成。1. 可通过包管理器、源码构建或子项目方式安装;2. 使用TEST()定义测试用例,EXPECT_/ASSERT_进行断言;3. 配合CMake构建时需链接GTest库并启用测试;4. 常用断言包括数值比较、布尔判断、浮点近似和异常检测,有助于提升代码质量。

在C++开发中,保证代码质量的重要手段之一是编写单元测试。Google Test(也称gtest)是目前最流行的C++单元测试框架之一,它提供了丰富的断言、测试用例组织方式以及测试运行机制,非常适合用于中小型项目的测试工作。
Google Test 不是系统库,需要手动集成到项目中。有几种常见方式:
假设我们有一个简单的加法函数,想对它进行测试。
先写被测函数(math.h):
立即学习“C++免费学习笔记(深入)”;
bool isPositive(int x);实现(math.cpp):
#include "math.h"测试文件(test_math.cpp):
#include <gtest/gtest.h>// 测试 add 函数
TEST(MathTest, AddFunction) {
EXPECT_EQ(add(2, 3), 5);
EXPECT_EQ(add(-1, 1), 0);
}
// 测试 isPositive 函数
TEST(MathTest, IsPositive) {
EXPECT_TRUE(isPositive(5));
EXPECT_FALSE(isPositive(-3));
EXPECT_FALSE(isPositive(0));
}
说明:
- TEST(TestCaseName, TestName) 定义一个测试用例,前缀名用于分组。
- 使用 EXPECT_* 或 ASSERT_* 进行断言。
- EXPECT_* 失败不会中断当前测试函数。
- ASSERT_* 失败会立即终止测试函数。
创建 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.14)set(CMAKE_CXX_STANDARD 17)
find_package(GTest REQUIRED)
add_library(math_lib math.cpp)
add_executable(test_math test_math.cpp)
target_link_libraries(test_math GTest::gtest GTest::gtest_main math_lib)
enable_testing()
add_test(NAME RunTests COMMAND test_math)
构建步骤:
mkdir build运行结果会显示哪些测试通过或失败,并统计总数。
Google Test 提供了丰富的断言宏,以下是一些常用示例:
基本上就这些。Google Test 上手快,集成方便,配合 CMake 能很好地融入现代C++项目流程。只要坚持写测试,长期来看能显著提升代码健壮性。
以上就是c++++如何使用Google Test进行单元测试_c++单元测试框架Google Test入门与示例的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号