gtest宏列表_指定宏怎么用

gtest宏列表_指定宏怎么用简介总结gtest中的所有断言相关的宏。gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:ASSERT_*系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。EXPECT_*系列的断言,当检查点失败时,继续往下执行。布尔值检查FatalassertionNonfatalassertion…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

简介

总结gtest中的所有断言相关的宏。
gtest中,断言的宏可以理解为分为两类,一类是ASSERT系列,一类是EXPECT系列。一个直观的解释就是:

  1. ASSERT_* 系列的断言,当检查点失败时,退出当前函数(注意:并非退出当前案例)。
  2. EXPECT_* 系列的断言,当检查点失败时,继续往下执行。

布尔值检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_TRUE(condition); EXPECT_TRUE(condition); condition is true
ASSERT_FALSE(condition); EXPECT_FALSE(condition); condition is false

数值型数据检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_EQ(expected, actual); EXPECT_EQ(expected, actual); expected == actual
ASSERT_NE(val1, val2); EXPECT_NE(val1, val2); val1 != val2
ASSERT_LT(val1, val2); EXPECT_LT(val1, val2); val1 < val2
ASSERT_LE(val1, val2); EXPECT_LE(val1, val2); val1 <= val2
ASSERT_GT(val1, val2); EXPECT_GT(val1, val2); val1 > val2
ASSERT_GE(val1, val2); EXPECT_GE(val1, val2); val1 >= val2

浮点型检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_FLOAT_EQ(expected, actual); EXPECT_FLOAT_EQ(expected, actual); the two float values are almost equal
ASSERT_DOUBLE_EQ(expected, actual); EXPECT_DOUBLE_EQ(expected, actual); the two double values are almost equal

对相近的两个数比较:

Fatal assertion Nonfatal assertion Verifies
ASSERT_NEAR(val1, val2, abs_error); EXPECT_NEAR(val1, val2, abs_error); the difference between val1 and val2 doesn’t exceed the given absolute error

字符串检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_STREQ(expected_str, actual_str); EXPECT_STREQ(expected_str, actual_str); the two C strings have the same content
ASSERT_STRNE(str1, str2); EXPECT_STRNE(str1, str2); the two C strings have different content
ASSERT_STRCASEEQ(expected_str, actual_str); EXPECT_STRCASEEQ(expected_str, actual_str); the two C strings have the same content, ignoring case
ASSERT_STRCASENE(str1, str2); EXPECT_STRCASENE(str1, str2); the two C strings have different content, ignoring case

显示返回成功或失败

Fatal assertion Nonfatal assertion
FAIL(); ADD_FAILURE();

异常检查

Fatal assertion Nonfatal assertion Verifies
ASSERT_THROW(statement, exception_type); EXPECT_THROW(statement, exception_type); statement throws an exception of the given type
ASSERT_ANY_THROW(statement); EXPECT_ANY_THROW(statement); statement throws an exception of any type
ASSERT_NO_THROW(statement); EXPECT_NO_THROW(statement); statement doesn’t throw any exception

Predicate Assertions

在使用EXPECT_TRUE或ASSERT_TRUE时,有时希望能够输出更加详细的信息,比如检查一个函数的返回值TRUE还是FALSE时,希望能够输出传入的参数是什么,以便失败后好跟踪。因此提供了如下的断言:

Fatal assertion Nonfatal assertion Verifies
ASSERT_PRED1(pred1, val1); EXPECT_PRED1(pred1, val1); pred1(val1) returns true
ASSERT_PRED2(pred2, val1, val2); EXPECT_PRED2(pred2, val1, val2); pred2(val1, val2) returns true

Windows HRESULT assertions

Fatal assertion Nonfatal assertion Verifies
ASSERT_HRESULT_SUCCEEDED(expression); EXPECT_HRESULT_SUCCEEDED(expression); expression is a success HRESULT
ASSERT_HRESULT_FAILED(expression); EXPECT_HRESULT_FAILED(expression); expression is a failure HRESULT

类型检查

template <typename T> class FooType { 
   

public:

    void Bar() { 
    testing::StaticAssertTypeEq<int, T>(); }

};



TEST(TypeAssertionTest, Demo)

{ 
   

    FooType<bool> fooType;

    fooType.Bar();

}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187925.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql 日志文件_mysql日志文件在哪「建议收藏」

    mysql 日志文件_mysql日志文件在哪「建议收藏」本篇文章将介绍mysql中的几种日志文件位置,如何能够找到。mysql日志文件的查询方法:查找错误日志文件路径showvariableslike‘log_error’;在mysql数据库中,错误日志功能是默认开启的。并且,错误日志无法被禁止。默认情况下,错误日志存储在mysql数据库的数据文件中。错误日志文件通常的名称为hostname.err。其中,hostname表示服务器主机名。错误日…

    2022年10月15日
  • 魔兽世界私服架设_魔兽大服务器合并列表

    魔兽世界私服架设_魔兽大服务器合并列表都说魔兽世界是最经典的网游,可惜我沉迷于程序的世界,都没有机会去体会一下!正好看了别人一篇blog,写着怎么架设魔兽世界,想想我就自己动手架一个看看了!等弄完之后,发现,那个服务器是2.3的客户端吧,好像!现在都3.13了,根本没用,后来到去sf.net找了一下,用svn把代码down下来,都很老了。后来啃了一点英文,才发现,现在源码管理已经迁移到git上面了。题外话,这个就是linux之

  • matlab的插值方法[通俗易懂]

    matlab的插值方法[通俗易懂]1.Lagrange插值插值是在已知数据之间寻找估计值的过程。在信号处理和图像处理中,插值极其常用。类型很多:比如多项式插值,一、二、三维插值,样条插值等。方法介绍:对给定的n个插值点x1,x2,⋯,xnx1,x2,⋯,xn{x_1},{x_2},\cdots,{x_n}及对应的函数值y1,y2,⋯,yny1,y2,⋯,yn{y_1},{y_2},\cdots,{y_n}…

  • Werkzeug_@mapkey注解

    Werkzeug_@mapkey注解在Python中,除了线程还有一些其他的并发方法如协程。所以在一个WSGI服务中,我们不能保证所有的请求都是以线程的形式存在。另外一种情况是当前请求复用了之前请求的线程,所以上一个请求的数据留在了当前请求的ThreadLocal对象中。Werkzeug提供了自己的Local数据存储werkzeug.local。其提供了与ThreadLocal近似的功能,但是可以运行线程和greenlet中…

  • 关于dos启动的一些知识

    关于dos启动的一些知识       最近装一个linux版本,就要用到dos,找来找去,忙乎了半天,又是缺文件,又是改配置。发现,一直用dos,但是还没有好好研究它。要研究dos,得从它的启动信息开始。。。。   一、DOS启动过程:开机->IO.SYS->MSDOS.SYS->CONFIG.SYS->COMMAND.COM->AUTOEXEC.BAT一般来说需要修改的是MSDOS.SYS、C

  • 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别[通俗易懂]

    块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别[通俗易懂]https://blog.csdn.net/enweitech/article/details/51445087 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-basedStorage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-basedStorageDevice)简称OSD。       首先,我们介绍这两种传统的存储类…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号