Я пытаюсь создать тестер с помощью googletest. проблема в том, что функция, которую я тестирую, возвращает void и вместо этого печатает результат. Я хочу, чтобы последняя строка была напечатана в консоли, чтобы я мог проверить вывод. строка может включать \n
.
поэтому у меня есть сама функция:
void f_sequence(char sequenceStr[])
{
//logic...
if(condotion1)
printf("somthing1");
else if(condotion2)
printf("somthing2")
(...)
}
а потом тестер:
TEST(TesterGroup, TesterName)
{
f_sequence("input");
EXPECT_EQ("somthing1", /*how do i get the output?*/);
}
Является ли это возможным?
Функции, которые я тестирую, написаны на C, а сама функция Test (тестер) — на C++. вывод печатается с использованием printf
. Я не могу изменить саму функцию. Я использую последнюю версию CLion.
std::ostream&
вместо того, чтобы просто печатать в stdout/stderr? - person jtbandes   schedule 19.02.2020stdout
в буфер с динамическим размером. Я протестировал его до 2 ГБ при чтении рекурсивного вызова каталога в Windows. ( Вот оригинал, перед просмотром) - person ryyker   schedule 19.02.2020