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

Fer*_*cio 26 c++ unit-testing exception boost-test

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

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

jon*_*ner 41

这不行吗?

BOOST_CHECK_THROW (expression, an_exception_type);
Run Code Online (Sandbox Code Playgroud)

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


Tom*_*mek 12

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