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

问题描述:

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

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

这不工作?

BOOST_CHECK_THROW (expression, an_exception_type); 

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

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