我如何期望Google测试中出现多个失败?

Thi*_*ler 5 c++ googletest

我如何期望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测试预期会出现多次失败?

For*_*Luz 5

我遇到了同样的问题,有效的一种方法是:

EXPECT_NONFATAL_FAILURE({
    EXPECT_NONFATAL_FAILURE(failTwice(), "");
},"Actual: 2");
Run Code Online (Sandbox Code Playgroud)

通过“实际:2”,我设置了将发生 2 次非致命故障的预期。一个缺点是很难判断您期望的是哪些错误消息。