当前位置: 首页 > news >正文

gtest 库的安装和使用

目录

介绍

安装

使用


介绍

        官方文档:GoogleTest 入门 |GoogleTest 谷歌测试

        gtest 库是谷歌开源的 C++测试单元框架,方便我们测试程序的正确性。

安装

sudo apt-get install libgtest-dev

使用

GTest 中的断言的宏可以分为两类:
ASSERT_ 系列:如果当前点检测失败则退出当前函数
EXPECT_ 系列:如果当前点检测失败则继续往下执行
bool 值检查
ASSERT_TRUE ( 参数 ) ,期待结果是 true
ASSERT_FALSE ( 参数 ) ,期待结果是 false
数值型数据检查
ASSERT_EQ ( 参数 1 ,参数 2) ,传入的是需要比较的两个数 equal
ASSERT_NE ( 参数 1 ,参数 2) not equal ,不等于才返回 true
ASSERT_LT ( 参数 1 ,参数 2) less than ,小于才返回 true
ASSERT_GT ( 参数 1 ,参数 2) greater than ,大于才返回 true
ASSERT_LE ( 参数 1 ,参数 2) less equal ,小于等于才返回 true
ASSERT_GE ( 参数 1 ,参数 2) greater equal ,大于等于才返回 true
TEST(测试名称, 测试样例名称)
{//...
}TEST(测试名称, 测试样例名称)
{//...
}TEST(测试名称, 测试样例名称)
{//...
}int main(int argc, char* argv[])
{//gtest 框架初始化testing::InitGoogleTest(&argc, argv);//调用测试套件return RUN_ALL_TESTS();
}

        testing::InitGoogleTest 函数用来初始化,RUN_ALL_TESTS 宏用来调用所有测试单元

        TEST 是一个宏,TEST 里面的内容就是要测试的内容。第一个参数是测试名称,如果不同的TEST 第一个参数相同,就属于同一个测试套件,第二个参数是测试的样例名称。

        举例来说,我们要测试一个计算器类,该类有加法函数,减法函数,乘法函数,除法函数。我们可以写四个 TEST 宏来测试该类。

#include <gtest/gtest.h>
class Calculator
{public:int add(int x, int y){return x + y;}int subtract(int x, int y){return x - y;}int multiply(int x, int y){return x * y;}int division(int x, int y){return x / y;}
};TEST(Calculator_Test, 加法测试)
{Calculator c;ASSERT_EQ(c.add(10, 20), 30);
}
TEST(Calculator_Test, 减法测试)
{Calculator c;ASSERT_EQ(c.subtract(20, 10), 10);
}
TEST(Calculator_Test, 乘法测试)
{Calculator c;ASSERT_EQ(c.multiply(20, 10), 3);
}TEST(Calculator_Test, 除法测试)
{Calculator c;ASSERT_EQ(c.division(20, 10), 1);
}int main(int argc, char* argv[])
{//gtest 框架初始化testing::InitGoogleTest(&argc, argv);//调用测试套件return RUN_ALL_TESTS();
}

相关文章:

  • python打卡第30天
  • dbhub MCP服务搭建
  • cursor+MCP系列:12306-MCP车票查询工具
  • Logrotate:配置日志轮转、高效管理Linux日志文件
  • 秒删node_modules 极速删除 (rimraf工具)
  • 非金属材料的分类及应用
  • C++寻位映射的奇幻密码:哈希
  • NIFI 2.40简介及部署
  • unordered_map/set常用接口及模拟实现
  • 网络请求和状态管理
  • ebpf-verifier
  • Flink 非确定有限自动机NFA
  • JavaScript:PC端特效--缓动动画
  • SHELL练习题(1-11题)记录(牛客)
  • Python训练营打卡——DAY30(2025.5.19)
  • python fastapi + react, 写一个图片 app
  • 英特尔硬件笔试面试题型解析
  • YOLO模型使用jupyterlab的方式进行预测/推理(示例)
  • nginx 流量控制
  • ubuntu22.04 卸载ESP-IDF
  • 体坛联播|利物浦三轮不胜,孙颖莎/王楚钦晋级混双八强
  • 人民日报任平:从“地瓜经济”理论到民营经济促进法,读懂中国经济的成长壮大之道
  • 两次通话、三点诉求,泽连斯基对美称愿与俄签署和平备忘录
  • 聚焦智能浪潮下的创业突围,“青年草坪创新创业湃对”走进北杨人工智能小镇
  • “80后”南京大学天文与空间科学学院教授施勇加盟西湖大学
  • 体坛联播|水晶宫队史首夺足总杯,CBA总决赛爆发赛后冲突