Как указать, что при использовании Boost.Test следует ожидать исключения? - PullRequest
26 голосов
/ 06 октября 2008

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

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

Ответы [ 2 ]

42 голосов
/ 06 октября 2008

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

BOOST_CHECK_THROW (expression, an_exception_type);

Это должно привести к прохождению теста, если выражение выдает данный тип исключения или не выполнено иначе. Если вам нужна серьезность, отличная от 'ПРОВЕРКА', вы также можете использовать BOOST_WARN_THROW() или BOOST_REQUIRE_THROW(). См. документацию

12 голосов
/ 06 октября 2008

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

...