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

StackOverflow https://stackoverflow.com/questions/172854

Вопрос

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

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

Это было полезно?

Решение

Разве это не работает?

BOOST_CHECK_THROW (expression, an_exception_type);

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top