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();

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 内存因0xc000009c的错误_0xc0000005错误怎么解决

    内存因0xc000009c的错误_0xc0000005错误怎么解决引发0xC0000005内存违例几种可能原因分析

    2022年10月3日
    2
  • MySql中的longtext字段的返回问题「建议收藏」

    MySql中的longtext字段的返回问题「建议收藏」最近开发中用到了longtext这种字段。在mysql中该字段的最大长度为4G如下图所示开发中遇到的一个问题就是。例如有个article表,然后我们的页面要将数据以列表的形式展示到前端(只显示几个字段,如作者,标题等等,例如放到table中显示多条记录),但是是将该表中的所有信息都查出来,然后当用户点击某条记录的时候,会跳到详情页,在显示出详细的信息。这样当数据量比较多的时候,或者文本…

    2022年5月15日
    34
  • 10分钟入门 – 微信小程序开发

    10分钟入门 – 微信小程序开发注册微信小程序如果你还没有微信公众平台的账号,请先进入微信公众平台首页,点击“立即注册”按钮进行注册。注册的账号类型可以是订阅号、服务号、小程序以及企业微信,我们选择“小程序”即可。接着填写账号信息,需要注意的是,填写的邮箱必须是未被微信公众平台注册、未被个人微信号绑定的邮箱,而且每个邮箱仅能申请一个小程序。激活邮箱之后,选择主体类型为“个人类型”,并按要求登记主体信息。主体信息提…

    2022年5月2日
    39
  • fsockopen — 打开一个网络连接或者一个Unix套接字连接

    fsockopen — 打开一个网络连接或者一个Unix套接字连接

    2021年9月23日
    71
  • 工作笔记 | Visual Studio 调用 Web Service

    工作笔记 | Visual Studio 调用 Web Service

    2021年5月26日
    104
  • CentOS7离线安装gcc

    CentOS7离线安装gcc安装Redis时,需要使用gcc。如果系统是联网的,那么直接使用如下命令联网安装。yum-yinstallgcc但是如果系统不可联网,那么就需要一种离线安装的方式了。步骤如下:1.从CentOS7的系统安装镜像中取出需要的rpm包(也可以通过别的方式获取):解压镜像文件,进入"Packages"目录,里面很多rpm包,取出如下几个:mpfr-3.1.1-4.el7….

    2022年5月25日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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