Come si specifica che dovrebbe essere prevista un'eccezione utilizzando Boost.Test?
-
05-07-2019 - |
Domanda
Ho un caso di test dell'unità Boost che fa sì che l'oggetto sottoposto a test generi un'eccezione (che è il test, causa un'eccezione). Come faccio a specificare nel test di aspettarmi quella particolare eccezione.
Posso specificare che il test dovrebbe avere un certo numero di fallimenti usando BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES ma questo sembra piuttosto non specifico. Voglio essere in grado di dire ad un punto specifico del test che un'eccezione dovrebbe essere lanciata e che non dovrebbe essere considerata un fallimento.
Soluzione
Non funziona?
BOOST_CHECK_THROW (expression, an_exception_type);
Ciò dovrebbe far passare il test se l'espressione genera il tipo di eccezione specificato o fallisce altrimenti. Se hai bisogno di una severità diversa da 'CHECK', puoi anche usare BOOST_WARN_THROW ()
o BOOST_REQUIRE_THROW ()
. Vedi la documentazione
Altri suggerimenti
Puoi anche utilizzare BOOST_CHECK_EXCEPTION, che ti consente di specificare la funzione di test che convalida la tua eccezione.