【问题标题】:Point of REQUIRE_NOTHROW in the catch c++ testing frameworkcatch c++ 测试框架中的 REQUIRE_NOTHROW 点
【发布时间】:2017-08-29 06:19:26
【问题描述】:

REQUIRE_NOTHROW 断言的意义何在?如果我只是放置一个语句并且不将其包装在任何断言宏中,如果它仍然抛出它会失败?

【问题讨论】:

    标签: catch-unit-test


    【解决方案1】:

    这是 TEST_CASE 失败和单个断言失败之间的区别。 REQUIRE 宏确保下一行在失败时不会被执行。相反,CHECK 宏可以将测试用例标记为失败但继续。

    考虑这个例子:

    REQUIRE_NOTHROW(parseInput(validInput));
    REQUIRE_THROWS(parseInput(errorInput));
    REQUIRE_THROWS(parseInput(NULL));
    

    所以我们明确要求传递有效输入不会导致异常,但错误输入会。如果我们不使用REQUIRE_NOTHROW() 宏,那么测试会失败,但我们需要破译失败的地方——异常可能来自其他测试代码行。

    【讨论】:

      猜你喜欢
      • 2016-06-15
      • 2017-02-28
      • 1970-01-01
      • 2014-10-24
      • 2017-04-30
      • 2011-07-31
      • 2011-04-23
      • 2010-09-10
      • 2015-09-09
      相关资源
      最近更新 更多