У меня есть класс PHP, который выводит соответствующий заголовок содержимого image/jpeg
и двоичные данные JPG. Я бы хотел протестировать класс с помощью PHPUnit, чтобы убедиться, что он выводит правильное изображение.PHPUnit Как проверить двоичный вывод?
Мой метод тестирования:
public function testNotFound(){
ob_start(NULL,0);
Model\Photo::deliver('blabbityblabbyblab');
$content = ob_get_clean();
$this->assertEquals(50,strlen($content));
}
Model\Photo
будет выводить частности, известное изображение. Однако утверждение никогда не бежать, и я получаю сообщение об ошибке, порожденную PHPUnit:
Test code or tested code did not (only) close its own output buffers
Как только закрыть буфер, я начал в моем методе испытания?
Возможно, есть некоторая ошибка или предупреждение в предложении Model \ Photo :: deliver, которое заставляет PHPUnit прерывать процесс до закрытия буфера. Что произойдет, если вы прокомментируете это предложение? + – gontrollez
Комментируя, что тест заставляет утверждение должным образом терпеть неудачу, как ожидалось. Единственный выход 'deliver', хотя и выводит заголовок' Content-type' и jpg-данные. Код, вставленный здесь: http://pastebin.com/eLAY7v6X – Pickle
Заголовки не защищены от буферизации вывода. Попробуйте отправить заголовки только в том случае, если они еще не отправлены, проверяя его с помощью функции headers_sent() php. – gontrollez