c++ unit-testing exception boost-test

c++ - ¿Cómo se especifica que se debe esperar una excepción usando Boost.Test?



unit-testing exception (2)

Tengo un caso de prueba de la unidad Boost que hace que el objeto bajo prueba arroje una excepción (esa es la prueba, para causar una excepción). ¿Cómo especifico en la prueba para esperar esa excepción en particular?

Puedo especificar que la prueba debe tener un cierto número de fallas al usar BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES, pero eso parece bastante inespecífico. Quiero poder decir en un punto específico de la prueba que se debe lanzar una excepción y que no se debe contar como una falla.


¿Esto no funciona?

BOOST_CHECK_THROW (expression, an_exception_type);

Eso debería hacer que la prueba pase si la expresión arroja el tipo de excepción dado o falla de lo contrario. Si necesita una gravedad diferente a ''CHECK'', también puede usar BOOST_WARN_THROW() o BOOST_REQUIRE_THROW() lugar. Ver la documentación


También puede usar BOOST_CHECK_EXCEPTION, que le permite especificar la función de prueba que valida su excepción.