Как вы указываете, что следует ожидать исключения с помощью Boost.Test?
У меня есть сценарий Boost unit test, который заставляет тестируемый объект выдавать исключение (это тест, чтобы вызвать исключение). Как указать в тесте, чтобы ожидать этого конкретного исключения.
Я могу указать, что тест должен иметь определенное количество сбоев, используя BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES, но это кажется довольно неспецифическим. Я хочу иметь возможность сказать в определенный момент теста, что нужно исключить исключение и что его нельзя считать неудачным.
Ответы
Ответ 1
Не работает ли это?
BOOST_CHECK_THROW (expression, an_exception_type);
Это должно привести к тому, что тест пройдет, если выражение выбрасывает данный тип исключения или не работает иначе. Если вам нужна другая степень серьезности, чем "CHECK", вы также можете использовать BOOST_WARN_THROW()
или BOOST_REQUIRE_THROW()
. См. документацию
Ответ 2
Вы также можете использовать BOOST_CHECK_EXCEPTION, который позволяет вам указать тестовую функцию, которая проверяет ваше исключение.