2008-10-05 5 views
25

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?¿Cómo se especifica que se debe esperar una excepción usando Boost.Test?

Puedo especificar que la prueba debe tener un cierto número de fallas al usar BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES, pero parece algo 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.

Respuesta

41

¿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 en caso contrario. Si necesita una severidad diferente a 'CHECK', también puede usar BOOST_WARN_THROW() o BOOST_REQUIRE_THROW(). Consulte the documentation

10

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

Cuestiones relacionadas