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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top