在Boost :: test中报告异常

The*_* do 5 c++ boost-test

使用boost::test框架,有没有办法检测是否从函数抛出异常(某种类型)?

Ada*_*wen 6

您是否希望在某些情况下测试函数是否正确抛出?如果是这样

BOOST_CHECK_THROW( function(), exception_type );
Run Code Online (Sandbox Code Playgroud)

会做的.您可以使用

BOOST_CHECK_EXCEPTION( function(), exception_type, predicate )
Run Code Online (Sandbox Code Playgroud)

当它被捕获时调用异常上的任意谓词

BOOST_CHECK_NO_THROW( function() )
Run Code Online (Sandbox Code Playgroud)

确保函数不抛出.

请参阅:http://www.boost.org/doc/libs/1_44_0/libs/test/doc/html/utf/testing-tools/reference.html