REQUIRE_NOTHROW
断言的意义何在?如果我只是放置一个语句并且不将它包装在任何断言宏中,如果它仍然抛出它会失败吗?
问问题
927 次
1 回答
4
这是 TEST_CASE 失败和单个断言失败之间的区别。REQUIRE 宏确保下一行在失败时不会被执行。相反,CHECK 宏可以将测试用例标记为失败但继续。
考虑这个例子:
REQUIRE_NOTHROW(parseInput(validInput));
REQUIRE_THROWS(parseInput(errorInput));
REQUIRE_THROWS(parseInput(NULL));
所以我们明确要求传递有效输入不会导致异常,但错误输入会。如果我们不使用REQUIRE_NOTHROW()
宏,那么测试会失败,但我们需要破译失败的地方——异常可能来自其他测试代码行。
于 2017-08-29T22:31:33.480 回答