Como você especifica que uma exceção deve ser esperada usando o boost.test?
-
05-07-2019 - |
Pergunta
Eu tenho um caso de teste de unidade de impulso que faz com que o objeto em teste jogue uma exceção (esse é o teste, para causar uma exceção). Como especificar no teste para esperar essa exceção específica.
Posso especificar que o teste deve ter um certo número de falhas usando o boost_auto_test_case_expected_failures, mas isso parece bastante inespecífico. Quero poder dizer em um ponto específico no teste que uma exceção deve ser lançada e que não deve ser contada como uma falha.
Solução
Isso não funciona?
BOOST_CHECK_THROW (expression, an_exception_type);
Isso deve fazer com que o teste seja aprovado se a expressão lançar o tipo de exceção dado ou falhar de outra forma. Se você precisar de uma gravidade diferente da 'verificação', você também pode usar BOOST_WARN_THROW()
ou BOOST_REQUIRE_THROW()
em vez de. Ver a documentação
Outras dicas
Você também pode usar o boost_check_exception, que permite especificar a função de teste que valida sua exceção.