Задать вопрос
27cm
@27cm
TODO: Написать статус

Как перехватить STDOUT вывод в php?

Например, чтобы протестировать работу вот такой функции:

function testme($n): void {
    fwrite(STDOUT, "test {$n}");
}


Во время теста вывод STDOUT надо перехватить, чтобы в итоге в STDOUT ничего не вывелось, но в тесте можно было проверить, что функция туда попыталась вывести.
  • Вопрос задан
  • 299 просмотров
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Сомневаюсь что вам нужно тестировать способность PHP отправлять сообщения в поток вывода, так что просто предложу простой выход - написать для такого вывода простенькую обёртку, которую уже не составит труда замокать в тестах.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
toxa82
@toxa82
Не уверен что сработает, но попробуйте через output buffer функции ob_*
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы