c++怎么使用Google Test框架进行测试_c++单元测试框架gtest基础用法

首先安装配置gtest,然后编写测试用例并使用TEST宏定义测试,通过EXPECT_EQ等断言验证结果,最后编译链接运行测试程序,输出显示1个测试通过。

c++怎么使用google test框架进行测试_c++单元测试框架gtest基础用法

使用Google Test(简称gtest)进行C++单元测试是提升代码质量的有效方式。它由Google开发,支持丰富的断言、测试用例组织和参数化测试功能。下面介绍如何在项目中集成并使用gtest的基础用法。

安装与配置gtest

在开始前,需要让gtest库可用。常见方法有通过包管理器安装或从源码编译:

Ubuntu/Debian系统:
sudo apt-get install libgtest-dev cmake
注意:这个命令只安装源码,还需自行编译生成库文件。 手动编译:
从GitHub仓库克隆后构建:mkdir build && cd build
cmake ..
make -j
sudo make install

这会将gtest的头文件和库安装到系统目录,便于后续链接。

编写第一个测试用例

假设你有一个简单的加法函数,想对其进行测试:

立即学习“C++免费学习笔记(深入)”;

// math.h
#ifndef MATH_H
#define MATH_H
int add(int a, int b);
#endif// math.cpp
#include “math.h”
int add(int a, int b) {
  return a + b;
}

创建测试文件 test_math.cpp:

#include
#include “math.h”

TEST(MathTest, AddFunction) {
  EXPECT_EQ(add(2, 3), 5);
  EXPECT_EQ(add(-1, 1), 0);
  EXPECT_EQ(add(0, 0), 0);
}

说明:
TEST宏定义一个测试用例,格式为 TEST(测试套件名, 测试名称)。EXPECT_EQ用于检查两个值是否相等,若不满足不会立即终止测试。

编译并运行测试

需要将测试代码与gtest库链接。使用g++编译示例:

g++ test_math.cpp math.cpp -lgtest -lgtest_main -pthread -o test_math
./test_math

输出结果类似:

[==========] Running 1 test from 1 test suite.
[———-] Global test environment set-up.
[———-] 1 test from MathTest
[ RUN ] MathTest.AddFunction
[ OK ] MathTest.AddFunction (0 ms)
[———-] 1 test from MathTest (0 ms total)
[———-] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[ PASSED ] 1 test.

表明测试通过。

常用断言与测试结构

gtest提供多种断言宏,分为两类:

非致命断言:EXPECT_系列,失败继续执行后续语句。
如 EXPECT_EQ(a,b), EXPECT_TRUE(cond), EXPECT_STREQ(s1,s2) 致命断言:ASSERT_系列,失败则中断当前测试函数。
如 ASSERT_EQ(a,b), ASSERT_FALSE(cond)

还可以组织多个测试到同一个套件中:

TEST(MathTest, SubFunction) {
  // 可添加其他函数测试
}

基本上就这些。掌握基础后可进一步学习参数化测试、死亡测试和Mock(配合gmock)。环境搭好后,写测试变得简单直接。关键是坚持为关键逻辑编写测试用例,逐步形成习惯。

以上就是c++++怎么使用Google Test框架进行测试_c++单元测试框架gtest基础用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1484048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 07:46:12
下一篇 2025年12月16日 04:05:57

相关推荐

发表回复

登录后才能评论
关注微信