27

我有一个 Boost 单元测试用例,它会导致被测对象抛出异常(这就是测试,导致异常)。我如何在测试中指定预期该特定异常。

我可以通过使用 BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES 指定测试应该有一定数量的失败,但这似乎相当不具体。我希望能够在测试中的特定点说应该抛出异常并且不应将其视为失败。

4

2 回答 2

43

这不行吗?

BOOST_CHECK_THROW (expression, an_exception_type);

如果表达式抛出给定的异常类型,那应该会导致测试通过,否则会失败。如果您需要与“CHECK”不同的严重性,您也可以使用BOOST_WARN_THROW()orBOOST_REQUIRE_THROW()代替。请参阅文档

于 2008-10-06T01:41:56.250 回答
12

您还可以使用 BOOST_CHECK_EXCEPTION,它允许您指定验证异常的测试函数。

于 2008-10-06T07:15:58.040 回答