gtest之断言集合

单元测试工具 GTest 介绍+快速入门 本文介绍了GTest框架在C项目中的集成与应用方法,主要内容包括:1. GTest基础:详细讲解了测试用例定义、断言机制、测试固件和打桩方法,对比了GTest与Ceedling的特性差异;2. 项目结构设计:提出测试代码与产品代码隔离的镜像目录原则,展示标准的CMake项目结构;3. 构建配置:通过CMake实现自动化测试构建,包含GTest集成、测试可执行文件生成和覆盖率检测;4. 完整示例:提供从代码实现、测试编写到构建运行的完整流程,重点演示了C函数的打桩测试方法。文章强调通过合理的目录结构和自动化构 阅读详情
AI摘要

本文详细介绍了gtest中用于验证代码正确性的各种断言方法,包括针对布尔、整数、浮点数、字符串等类型的断言,如EXPECT_TRUE、EXPECT_EQ、EXPECT_FLOAT_EQ等,帮助开发者进行高效准确的单元测试。

判断实际结果与预期结果是否相符的机制称为断言。

下面是gtest的一些断言集合,包括布尔类型,整数类型,浮点数类型,字符串等。

断言含义通过条件
EXPECT_TRUE(actual)判断actual的值是否为trueactual==true
EXPECT_FALSE(actual)判断actual的值是否为falseactual==false
EXPECT_EQ(expected,actual)

判断actual的值与expected是否相等

expected是预期值,

actual是实际值

actual==expected
EXPECT_NE(val1,val2)判断val1和val2是否相等val1!=val2
EXPECT_LT(val1,val2)比较val1和val2的大小val1<val2
EXPECT_LE(val1,val2)比较val1和val2的大小val1<=val2
EXPECT_GT(val1,val2)比较val1和val2的大小val1>val2
EXPECT_GE(val1,val2)比较val1和val2的大小val1>=val2
EXPECT_FLOAT_EQ(val1,val2)

判断actual的值与expected是否相等

所有参数为float类型

actual==expected
EXPECT_DOUBLE_EQ(val1,val2)

判断actual的值与expected是否相等

所有参数为double类型

actual==expected
EXPECT_NEAR(val1,val2)

判断actual的值与expected是否接近

所有参数为double类型

abs(expected-abs_error)<abs_error
EXPECT_STREQ(expected_str,actual_str)

判断字符串actual_str与expected_str是否相同

支持char与wchar_t类型

expected_str==actual_str
EXPECT_STRNE(str1,str2)

判断字符串str1与str2是否不相同

支持char与wchar_t类型

expected_str!=actual_str
EXPECT_STRCASEEQ(expected_str,actual_str)

判断字符串actual_str与expected_str是否只有大小写不相同

不支持wchar_t类型

两个字符串字母全部转换为大小或者小写后相同
EXPECT_STRCASENE(str1,str2)

判断字符串str1与str2是否只有大小写不相同

不支持wchar_t类型

两个字符串字母全部转换为大小或者小写后不相同

 

自己搭建GTest测试平台 - 测试用例编写 GTest单元测试用例样例 阅读详情

相关推荐

MATLAB AppDesigner 中TextArea保留原有信息并换行显示提示信息

App Designer 中的文本区域TextArea组件,一般可以用来作为matlab app设计中的信息显示。 app.TextArea.Value = 'Hello Matlab'; Value可以是字符向量、字符向量元胞数组、字符串数组或一维分类数组。这样直接给TextArea赋值,每次赋值都会消除先前的信息,然后显示新的信息。如果想要在app实现保留原有信息、多行信息的输出,在MathWorks官方帮助中心给出了一种方法: cellArrayText{1} = sprintf('%s\n

我是麻瓜喔的博客 1万+

gtest断言

gtest断言

lichao_n的博客 448

避坑指南:时间序列互相关分析(CCF)常见的5个误用场景

本文详细解析了时间序列互相关分析(CCF)中常见的5个误用场景,包括忽视平稳性检验、混淆同期相关与因果关联、误读滞后阶数、忽略自相关干扰以及样本量不足等问题。通过实际案例和技术建议,帮助数据分析师避免这些陷阱,确保CCF分析的准确性和可靠性。

weixin_29064009的博客 428

利用spring-core Util包中的Assert优雅的判断字符串、对象或者集合不为空

一般我们在Service中,判断字符串或对象不为空,会用相关的工具类来判断,比如Hutool的包,然后再抛个异常 public List&lt;Td42CaseFlow&gt; getListByCaseKey(String caseKey) { if (StrUtil.isEmpty(caseKey)) { throw new BusinessException("案例编...

读钓的博客 5611

LoRa物联网实战:用新大陆模块打造智能LED呼吸灯(附完整代码解析)

本文详细介绍了如何利用新大陆LoRa模块实现工业级智能LED呼吸灯的设计与开发。通过256级PWM调制的呼吸灯效果,结合LoRa无线控制技术,实现设备状态的可视化反馈和多设备同步控制。文章包含完整的硬件选型、电路设计、算法优化和代码实现,特别适合物联网开发者和硬件工程师参考。

github5actions的博客 85

从零到一:基于DESeq2的转录组差异表达分析实战指南

本文详细介绍了基于DESeq2的转录组差异表达分析实战指南,涵盖数据准备、标准化处理、差异分析及结果解读等关键步骤。DESeq2凭借其稳定性和对低表达基因的友好处理,成为转录组数据分析的首选工具。文章还提供了常见问题排查和优化建议,帮助研究者高效完成从分析到发表的完整流程。

weixin_26759093的博客 270

assert()函数用法总结

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include assert.h> void assert( int expression );

qq_34289431的博客 583

K8s-K8s部署Zookeeper+Kafka+ELFK+持久化数据

K8s环境下容器化部署`Zookeeper+Kafka+ELFK`日志收集系统

✅ 专注企业级 Linux/DevOps 运维的实战派 ✅ 已输出上百篇可落地方案 ✅ Shell 脚本开箱即用 ✅ K8s/YAML 环境验证 ✅ 故障排查链路完整复现 1914

Assert - 断言

概述  Assert - 断言  编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。  使用断言可以创建更稳定,品质更好

LessonNo1的专栏 902

EB配置I2c - 实现与PF8200的读写操作

①,基于硬件实现IIC通信(硬件GPIO引脚配置为I2c复用引脚)②,基于软件模拟IO实现IIC通信(代码控制SDA和SCL两个IO引脚的电平来模拟IIC时序)本文章基于64pin的恩智浦S32K146型号的芯片作为主机,从机是NXP的供电芯片。在本次实验中,我们将以使用EB工具链来配置硬件IIC通信。1,EB配置2,代码编写3,测试验证话不多说,走你~写操作比较简单,只需要申明一个I2c配置结构体变量即可。

weixin_48498880的博客 3767

FPGA实现串口升级及MultiBoot(五)通过约束脚本添加IPROG实例

上一篇文章种总结了MultiBoot 关键技术,分为:一个指令、二种位流、三种方式、四样错误。针对以上四句话我们接下来详细分析。在开始解析之前我们先准备两个文件,一个是控制LED闪烁的文件,通过更换引脚约束可以控制不同LED,这样就可以指示是启动MultiBoot位流还是Golden位流。还有一个文件就是uart发送文件,会指示启动的位流格式和启动地址。文件都比较简单,就不列举了,文件详见文后的链接。对于 IPROG 指令目前有三种实现方式,分别为:1)通过约束脚本添加;2)通过ICAPE2原语

OpenFPGA的博客 2104

Gtest函数说明

ASSERT宏 EXPECT宏 功能 ASSERT_TRUE EXPECT_TRUE 判真 ASSERT_FALSE EXPECT_FALSE 判假 ASSERT_EQ EXPECT_EQ 相等 ASSERT_NE EXPECT_

听风流过 2845

基于STM32L4XX、HAL库的Ra-01SC-P LoRa模块驱动程序设计

0x22) { // SX1276/SX1278版本号。// 发射功率(2-20)// 工作频率(Hz)// 编码率(5-8)

zhusl6688的博客 423

GTest 使用笔记

本文对比了三种C++测试框架:CppUnit、CxxTest和Google Test(GTest)。CppUnit较陈旧且存在设计缺陷;CxxTest改进了CppUnit的不足,具有更好的可移植性但依赖脚本预处理;GTest作为Google开发的跨平台框架,功能全面且使用广泛。文章详细介绍了GTest的安装方法、基本使用流程(包括测试代码编写、编译和执行)以及丰富的断言类型(布尔值、数值、字符串、异常等检查)。最后给出了使用建议,如避免将测试文件编入主库、推荐链接gtest_main而非自定义main函数等

人无远虑,必有近忧 2952

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Gtest 对比 Junit

C++ gtest 与java junit 差异总结

qq_42215863的博客 1243

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

gtest 安装及使用

GTest是一个C++单元测试框架,由google公司发布。gtest是为了在不同平台上为编写 C++单元测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化等等测试所需的宏,以及全局测试,单元测试组件。

2301_79881188的博客 1455

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

gtest测试框架使用详解

GTest通过灵活的测试组织(TESTTEST_F)、丰富的断言机制和强大的扩展特性,成为C++单元测试的首选框架。测试应独立(不依赖执行顺序);优先使用EXPECT_*断言(避免过早终止测试);复杂场景用测试夹具(TEST_F)共享逻辑;利用参数化测试覆盖多输入场景。通过GTest可以系统化地验证代码行为,显著提升代码质量和可维护性。

u010632343的博客 1075

C++单元测试框架Google Test系列(gtest)

目录 1. 前言 2. 断言 示例 操作符<< 布尔值检查 数值型数据检查 字符串检查 显示返回成功或失败 异常检查 Predicate Assertions 浮点型检查 类型检查 3. 事件机制 全局事件 TestSuite事件 TestCase事件 4. 参数化 旧方案 使用参数化后的方案 参数化后的测试案例名 类型参数化 5. 死亡测试...

私房菜 4628

谷歌开源库gtest 框架安装与使用

半篇文章讲解了gtest的安装,使用,事件机制等等,便于大家和我个人在日常开发中进行参考。

Yu_Lijing的博客 1480

gtest使用示例

gtest简单应用(本文参考自CoderZHu的技术博客) main中启动gtest的方法 #include <gtest/gtest.h> int main(int argc, char* argv[]) { testing::InitGoogleTest(&argc, argv); auto result = RUN_ALL_TESTS();...

ddq58011的博客 458

gtest断言选择指南:EXPECT_*与ASSERT_*的实战场景与决策逻辑

本文深入解析gtest框架中EXPECT_*与ASSERT_*断言的核心区别与适用场景,通过实战案例展示如何根据测试需求选择断言类型。关键场景包括前置条件检查(ASSERT_*)与多条件验证(EXPECT_*),帮助开发者编写更健壮的单元测试代码。

weixin_33800463的博客 408

Gtest

Google Test(简称 gtest)是 Google 开源的 C++ 测试框架。它被广泛应用于工业级 C++ 项目中,包括 Chromium、LLVM、OpenCV 等知名项目。所有断言都支持用<<<< "当输入为 n=" << n << " 时结果不符预期";这在循环中调用断言时特别有用,能帮你快速定位是哪次迭代出了问题。死亡测试用于验证程序在特定条件下是否会按预期终止(比如触发assert、调用abort()、或exit()这在测试错误处理逻辑时非常有用。

大学在读,感谢关注 490

gtest框架的安装与使用

GTest 是一个跨平台的 C++单元测试框架,由 google 公司发布。gtest 是为了在不同 平台上为编写 C++单元测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化等等测试所需的宏,以及全局测试,单元测试组件。

odoaobo的博客 1252

gtest框架的介绍与应用

【摘要】在本文中,作者根据之前使用gtest框架进行测试的经验,总结了一些使用方式和案例。 在这些案例中,我们可以了解到gtest框架的基本使用方法以及在我们日常测试中的应用,同时也能促进我们对于百度的btest的了解。在我们之后的测试工作中,可以根据各个项目的特点以及gtest、btest等测试框架的功用,进行协调和因势利导,将更多框架产品用于我们的测试工作中,使我们的测试工作更加正规、更加高效

西二旗小码农 2273

(10) GTest c++单元测试(mac版)

我们希望在测试之间共享数据、对象,避免重复的设置和清理,做好代码测试的复用。Gtest提供了Test Fixture,能在测试前后统一做一些准备或清理操作。这些操作称为测试事件。为了方便的管理和组织多个测试用例,Gtest框架可以将测试用例组织称测试套件(Test Suite),并且可以嵌套多个。Gtest提供了一系列丰富的断言宏,用于验证测试结果。_XXX后缀代表具体的检查类型。

qq_17614495的博客 934
上一篇: c++单元测试框架之gtest
下一篇: 今年我进步了么
Qt上位机开发
Qt上位机开发 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄9年 9664粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值