1、前言
作为一个成熟的单元测试框架,gtest自然拥有一些用于判断值是否与期望一致的断言。在gtest中,断言分为两大类:ASSERT_*和EXPECT_*。它们的区别在于,ASSERT_*类断言在失败时,会立即退出当前的测试用例(即其所在的函数,但不会结束整个测试);EXPECT_*类断言在失败时,会继续执行,不会退出当前测试用例。
在每一个大类中,有分为多个小类别,它们分别用于不同目的的测试,如布尔测试、数值测试、字符串测试等等,下面我们逐个认识gtest中,为它们所定义的宏。
2、布尔测试
布尔测试用于测试给定的值为真还是假,它们包括:
*_TRUE(condition):期望condition为true,若condition为false,则断言失败;
*_FALSE(condition):期望condition为false,若condition为true,则断言失败;
其中“*“为”ASSERT“或者”EXPECT“,后续所有的宏都将采用这种形式。
3、数值比较测试
数值比较测试即比较两个数值之间的大小关系,它们包括:
*_EQ(expected, actual):expected == actual则成功,否则失败;
*_NE(expected, actual):expedted != actual则成功,否则失败;
*_LT(val1, val2):val1 < val2则成功,否则失败;
*_LE(val1, val2):val1 <= val2 则成功,否则失败;
*_GT(val1, val2):val1 > val2则成功,否则失败;
*_GE(val1,val2): val1 >= val2则成功,否则失败&#x