我怎么能指望谷歌测试会有多个失败呢?
我怎么能预期Google测试会有多个失败?我在测试被测代码中发生断言时使用它。因为这些断言不是致命的,所以可能会发生多个。
以下测试用例再现了这一点:
void failTwice()
{
EXPECT_TRUE(false) << "fail first time";
EXPECT_TRUE(false) << "fail second time";
}
TEST_F(FailureTest, testMultipleFails)
{
EXPECT_NONFATAL_FAILURE(failTwice(), "time");
}
这将产生以下输出:
gtest/src/gtest.cc:657: Failure
Expected: 1 non-fatal failure
Actual: 2 failures
FailureTest.h:20: Non-fatal failure:
Value of: false
Actual: false
Expected: true
fail first time
FailureTest.h:20: Non-fatal failure:
Value of: false
Actual: false
Expected: true
fail second time
问题是:预期:1个非致命故障
如何告诉Google测试预期会有多个失败?
解决方案
我遇到了同样的问题,一种有效的方法是:
EXPECT_NONFATAL_FAILURE({
EXPECT_NONFATAL_FAILURE(failTwice(), "");
},"Actual: 2");
使用"Actual:2",我设置了将发生2个非致命故障的预期。一个缺点是不容易判断您预期的是哪些错误消息。
相关文章