EXPECT_NEAR
时间: 2024-03-15 14:40:37 浏览: 16
EXPECT_NEAR是Google Test框架中的一个断言宏,用于在测试中比较两个浮点数或双精度数的近似相等性。它的作用是判断两个数的差值是否小于给定的误差范围。
EXPECT_NEAR的语法如下:
EXPECT_NEAR(expected, actual, tolerance);
其中,expected是期望值,actual是实际值,tolerance是容忍的误差范围。如果实际值与期望值的差值小于等于tolerance,则断言成功;否则,断言失败。
这个宏在测试中非常有用,因为浮点数计算存在舍入误差,直接比较可能会导致不准确的结果。使用EXPECT_NEAR可以允许一定的误差范围,提高测试的稳定性和可靠性。
相关问题
gtest EXPECT_EQ
gtest 的 EXPECT_EQ 是 Google Test 提供的一个断言宏,用于比较两个值是否相等。这个宏的使用方式如下:
```cpp
EXPECT_EQ(expected_value, actual_value);
```
其中,expected_value 是期望的值,actual_value 是实际的值。当两个值相等时,断言通过,测试继续进行;当两个值不相等时,断言失败,测试停止并报告失败信息。
示例代码如下:
```cpp
#include <gtest/gtest.h>
TEST(MyTest, ValueComparison) {
int expected = 5;
int actual = 5;
EXPECT_EQ(expected, actual); // 断言期望值和实际值相等
}
int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
```
在上面的示例中,我们定义了一个测试用例 `MyTest`,其中进行了一个值比较的断言。我们期望 `expected` 和 `actual` 的值相等,因此使用了 `EXPECT_EQ` 断言来进行判断。
如果 `expected` 和 `actual` 的值相等,测试通过;如果不相等,测试失败,并输出错误信息。
请注意,当使用 `EXPECT_EQ` 断言时,如果断言失败,测试仍然会继续执行,因此可以在一个测试用例中包含多个断言来检查不同的条件。
EXPECT_DEATH_IF_SUPPORTED
EXPECT_DEATH_IF_SUPPORTED是Google Test框架中的一个宏,用于测试代码中是否会导致程序的非正常终止(比如崩溃)。它的作用是在测试中断言某个代码块会导致程序的非正常终止,如果程序没有崩溃,则测试失败。
EXPECT_DEATH_IF_SUPPORTED的使用方式如下:
```
EXPECT_DEATH_IF_SUPPORTED(statement, regex);
```
其中,statement是要测试的代码块,regex是一个正则表达式,用于匹配程序崩溃时输出的错误信息。
当使用EXPECT_DEATH_IF_SUPPORTED进行测试时,如果程序崩溃了,并且错误信息与给定的正则表达式匹配,那么测试通过。否则,测试失败。
需要注意的是,EXPECT_DEATH_IF_SUPPORTED只在支持异常处理的系统上有效。在不支持异常处理的系统上,该宏会被忽略,测试也会通过。