如何使用Boost.Test指定应该预期的异常?

时间:2008-10-05 23:38:29

标签: c++ unit-testing exception boost-test

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

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

2 个答案:

答案 0 :(得分:42)

这不起作用吗?

BOOST_CHECK_THROW (expression, an_exception_type);

如果表达式抛出给定的异常类型,则应该导致测试通过,否则失败。如果您需要与“检查”不同的严重性,您也可以使用BOOST_WARN_THROW()BOOST_REQUIRE_THROW()。见the documentation

答案 1 :(得分:12)

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