Tôi đang cố gắng sử dụng PHPunit để kiểm tra một lớp xuất ra một số tiêu đề tùy chỉnh.
Vấn đề là trên máy của tôi cái này:
<?php
class HeadersTest extends PHPUnit_Framework_TestCase {
public function testHeaders()
{
ob_start();
header('Location: foo');
$headers_list = headers_list();
header_remove();
ob_clean();
$this->assertContains('Location: foo', $headers_list);
}
}
hoặc thậm chí điều này:
<?php
class HeadersTest extends PHPUnit_Framework_TestCase {
public function testHeaders()
{
ob_start();
header('Location: foo');
header_remove();
ob_clean();
}
}
trả lại lỗi này:
name@host [~/test]# phpunit --verbose HeadersTest.php
PHPUnit 3.6.10 by Sebastian Bergmann.
E
Time: 0 seconds, Memory: 2.25Mb
There was 1 error:
1) HeadersTest::testHeaders
Cannot modify header information - headers already sent by (output started at /usr/local/lib/php/PHPUnit/Util/Printer.php:173)
/test/HeadersTest.php:9
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
Điều này trông giống như thể có thứ gì đó khác xuất ra đầu cuối trước khi chạy thử nghiệm mặc dù không có tệp nào khác được bao gồm và không có ký tự nào khác trước phần đầu của thẻ PHP. Nó có thể là một cái gì đó bên trong PHPunit đang gây ra điều này?
Vấn đề có thể là gì?