Могу ли я проверить выпуск моей программы с помощью теста boost?
Как в:
void f()
{
cout << "blah" << endl;
}
BOOST_AUTO_TEST_CASE(f)
{
f();
// This would be a beauty
// BOOST_CHECK_PROGRAM_OUTPUT_MATCH("blah");
}
Ответ 1
Да, вы можете сделать это, перенаправив std::cout в boost::test_tools::output_test_stream, который предоставляет специальные методы для сравнения вывода. Чтобы убедиться, что std::cout всегда правильно восстановлен, вы можете использовать настраиваемую структуру, как показано в следующем примере.
Я следил за @Björn Pollex ответом на несколько дней. Но однажды я обнаружил, что это не обязательно делать так. Просто используйте boost::test_tools::output_test_stream.