我如何期望Google测试中出现多个失败?我在测试断言发生在被测代码中时使用此方法。因为这些断言不是致命的,所以可能会发生多种情况。
以下测试用例再现了这一点:
void failTwice()
{
EXPECT_TRUE(false) << "fail first time";
EXPECT_TRUE(false) << "fail second time";
}
TEST_F(FailureTest, testMultipleFails)
{
EXPECT_NONFATAL_FAILURE(failTwice(), "time");
}
Run Code Online (Sandbox Code Playgroud)
这将产生以下输出:
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
Run Code Online (Sandbox Code Playgroud)
问题是这样的:预期:1次非致命故障
我该如何告诉Google测试预期会出现多次失败?
我遇到了同样的问题,有效的一种方法是:
EXPECT_NONFATAL_FAILURE({
EXPECT_NONFATAL_FAILURE(failTwice(), "");
},"Actual: 2");
Run Code Online (Sandbox Code Playgroud)
通过“实际:2”,我设置了将发生 2 次非致命故障的预期。一个缺点是很难判断您期望的是哪些错误消息。