Wie geben Sie an, dass mit Boost.Test eine Ausnahme erwartet werden soll?

Ich habe einen Boost-Komponententestfall, der bewirkt, dass das zu testende Objekt eine Ausnahme auslöst (das ist der Test, um eine Ausnahme zu verursachen). Wie kann ich im Test angeben, dass diese bestimmte Ausnahme erwartet wird.

Ich kann angeben, dass der Test eine bestimmte Anzahl von Fehlern haben sollte, indem BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES aber das scheint ziemlich unspezifisch. Ich möchte an einem bestimmten Punkt des Tests sagen können, dass eine Ausnahme ausgelöst werden sollte und dass sie nicht als Fehler gewertet werden sollte.

Antwort auf "Wie geben Sie an, dass mit Boost.Test eine Ausnahme erwartet werden soll? " 2 von antworten

Funktioniert das nicht?

BOOST_CHECK_THROW (expression, an_exception_type);

Das sollte dazu führen, dass der Test bestanden wird, wenn der Ausdruck den angegebenen Ausnahmetyp auslöst oder anderweitig fehlschlägt. Wenn Sie einen anderen Schweregrad als 'CHECK' benötigen, können Sie stattdessen auch BOOST_WARN_THROW() or oder BOOST_REQUIRE_THROW() instead. See verwenden. Siehe the documentation

Sie können auch BOOST_CHECK_EXCEPTION verwenden, mit dem Sie eine Testfunktion angeben können, die Ihre Ausnahme überprüft.