首先安装配置Google Test,接着编写被测函数和测试用例,然后通过CMake构建项目并运行测试。具体步骤包括:使用包管理器或源码安装gtest,定义待测函数如add,利用TEST宏创建测试套件与用例,使用EXPECT_EQ进行断言,在CMakeLists.txt中配置gmock_main或GTest::Main链接,最后编译执行测试输出结果。正确配置后可顺利运行单元测试并验证代码逻辑。

在C++中使用Google Test(通常称为gtest)编写单元测试,是一种非常有效的验证代码正确性的方法。Google Test是Google开发的一个开源C++测试框架,支持丰富的断言、参数化测试、死亡测试等功能。下面介绍如何配置并编写一个基本的Google Test单元测试。
在开始前,需要先获取并安装Google Test库:
假设有一个简单的加法函数需要测试:
// math.h
#ifndef MATH_H
#define MATH_H
int add(int a, int b);
#endif
<p>// math.cpp</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/6e7abc4abb9f" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">C++免费学习笔记(深入)</a>”;</p><h1>include "math.h"</h1><p>int add(int a, int b) {
return a + b;
}
创建一个测试文件,例如test_math.cpp:
#include <gtest/gtest.h>
#include "math.h"
<p>// 测试用例:测试add函数
TEST(MathTest, AddPositiveNumbers) {
EXPECT_EQ(add(2, 3), 5);
EXPECT_EQ(add(0, 0), 0);
}</p><p>TEST(MathTest, AddNegativeNumbers) {
EXPECT_EQ(add(-1, -1), -2);
EXPECT_EQ(add(-5, 3), -2);
}
说明:
创建CMakeLists.txt:
cmake_minimum_required(VERSION 3.14)
project(MyTestProject)
<h1>启用C++17</h1><p>set(CMAKE_CXX_STANDARD 17)</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/ai/2095">
<img src="https://img.php.cn/upload/ai_manual/001/246/273/68b6cab553c77389.png" alt="青柚面试">
</a>
<div class="aritcle_card_info">
<a href="/ai/2095">青柚面试</a>
<p>简单好用的日语面试辅助工具</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="青柚面试">
<span>57</span>
</div>
</div>
<a href="/ai/2095" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="青柚面试">
</a>
</div>
<h1>添加源文件</h1><p>add_library(math_lib math.cpp)</p><h1>查找Google Test包</h1><p>find_package(GTest REQUIRED)</p><h1>添加测试可执行文件</h1><p>add_executable(test_math test_math.cpp)
target_link_libraries(test_math math_lib GTest::GTest GTest::Main)</p><h1>启用测试</h1><p>enable_testing()
add_test(NAME run_tests COMMAND test_math)
或者使用FetchContent自动引入gtest:
include(FetchContent) FetchContent_Declare( googletest URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip ) FetchContent_MakeAvailable(googletest) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
然后将链接目标改为gmock_main或GTest::Main。
在项目目录下执行:
mkdir build cd build cmake .. make ./test_math
输出会显示哪些测试通过或失败,例如:
[==========] Running 2 tests from 1 test suite. [----------] Global test environment set-up. [----------] 2 tests from MathTest [ RUN ] MathTest.AddPositiveNumbers [ OK ] MathTest.AddPositiveNumbers (0 ms) [ RUN ] MathTest.AddNegativeNumbers [ OK ] MathTest.AddNegativeNumbers (0 ms) [----------] 2 tests from MathTest (1 ms total) [==========] 2 passed, 0 failed, 0 skipped.
基本上就这些。只要配置好环境,写测试就像写普通C++函数一样简单。关键是把逻辑拆解成小函数,并为每种情况写对应的测试用例。Google Test提供了足够灵活的工具来覆盖大多数测试场景。不复杂但容易忽略的是断言选择和测试命名的清晰性。
以上就是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号