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