Как указать, что при использовании Boost.Test следует ожидать исключения?
-
05-07-2019 - |
Вопрос
У меня есть блок-тест Boost, который заставляет тестируемый объект генерировать исключение (это тест, вызывающий исключение). Как указать в тесте, что следует ожидать именно этого исключения.
Я могу указать, что в тесте должно быть определенное количество сбоев, используя BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES, но это кажется довольно неопределенным. Я хочу иметь возможность сказать в определенный момент теста, что должно быть сгенерировано исключение и что оно не должно рассматриваться как сбой.
Решение
Разве это не работает?
BOOST_CHECK_THROW (expression, an_exception_type);
Это должно привести к прохождению теста, если выражение выбрасывает данный тип исключения или не выполнено иначе. Если вам нужна серьезность, отличная от 'CHECK', вы можете вместо этого использовать BOOST_WARN_THROW ()
или BOOST_REQUIRE_THROW ()
. См. документацию . р>
Другие советы
Вы также можете использовать BOOST_CHECK_EXCEPTION, что позволяет вам указать тестовую функцию, которая проверяет ваше исключение.