Подтвердить что ты не робот

Как вы указываете, что следует ожидать исключения с помощью Boost.Test?

У меня есть сценарий Boost unit test, который заставляет тестируемый объект выдавать исключение (это тест, чтобы вызвать исключение). Как указать в тесте, чтобы ожидать этого конкретного исключения.

Я могу указать, что тест должен иметь определенное количество сбоев, используя BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES, но это кажется довольно неспецифическим. Я хочу иметь возможность сказать в определенный момент теста, что нужно исключить исключение и что его нельзя считать неудачным.

4b9b3361

Ответ 1

Не работает ли это?

BOOST_CHECK_THROW (expression, an_exception_type);

Это должно привести к тому, что тест пройдет, если выражение выбрасывает данный тип исключения или не работает иначе. Если вам нужна другая степень серьезности, чем "CHECK", вы также можете использовать BOOST_WARN_THROW() или BOOST_REQUIRE_THROW(). См. документацию

Ответ 2

Вы также можете использовать BOOST_CHECK_EXCEPTION, который позволяет вам указать тестовую функцию, которая проверяет ваше исключение.