Или я могу использовать его в обычном коде?Могу ли я использовать BOOST_CHECK только в модульных тестах?
Если ответ «нет», то есть ли библиотека C++, которая предоставит мне все макросы, такие как CHECK_EQUAL, CHECK_CLOSE и т. Д.?
Или я могу использовать его в обычном коде?Могу ли я использовать BOOST_CHECK только в модульных тестах?
Если ответ «нет», то есть ли библиотека C++, которая предоставит мне все макросы, такие как CHECK_EQUAL, CHECK_CLOSE и т. Д.?
Он имеет смысл только в модульных тестах, поскольку его цель - предупредить фреймворк модуля тестирования, который не прошел, а затем продолжить. Если рамки тестирования модулей не работают, это не сработает.
Внешние модульные тесты, вы, как правило, хотите использовать некоторый вкус assert вместо этого.
Если ответ «нет», то есть C++ библиотека, которая предоставит мне все макросы как
CHECK_EQUAL
,CHECK_CLOSE
и т.д.?
Короткий ответ - нет. Более длинный ответ: эти макросы являются частью Boost.Test. Итак, если вы не используете Boost.Test, вам придется сворачивать самостоятельно.
Я использую boost test. Первый вопрос заключается в том, не могу ли я использовать их вне модульного теста. –
Импортируйте определения (например, скопируйте часть заголовков, которые определяют эти макросы в отдельном заголовке, и добавьте их в свой проект, вы не захотите, чтобы весь Boost.Test был отправлен вместе с вашим кодом.) – dirkgently
Это довольно просто написать эту функциональность на основе boost/assert или cassert.
Обратите внимание, что для утверждений могут потребоваться некоторые определения (например, DEBUG)
Спасибо, что ответ на этот вопрос я обновил. –
То, что это означает, означает, что «платформа единичного тестирования работает». Означает ли это, что оно выровнено или что мы находимся в BOOST_AUTO_TEST_CASE? Что произойдет, если я вызову BOOST_CHECK_EQUAL вне BOOST_AUTO_TEST_CASE? (с привязкой или без рамки тестирования?) –