2013-07-20 6 views
1

Я использую phpunit. Я хочу проверить свой код, который в основном получает параметры из HTTP-заголовков и использует его для выполнения последующих операций.Настройка заголовков HTTP для запуска тестовых примеров

Но при тестировании заголовки равны нулю.

Есть ли способ установить заголовки (может быть в файле начальной загрузки), чтобы при моем обращении к параметру он получил это значение?

UPDATE: Я попытался ниже код, как предложено в этом question:

class Action_UserTest extends PHPUnit_Framework_TestCase { 

    /** 
    * @runInSeparateProcess 
    */ 
    public function testBar() 
    { 
     header('Location : foo'); 
    } 

    /** 
    * @covers Action_User::executePut 
    * @todo Implement testExecutePut(). 
    */ 
    public function testExecutePut() { 

     ob_start(); 
     $this->testBar(); 
     $headers_list = headers_list(); 
     $this->assertNotEmpty($headers_list); 
     $this->assertContains('Location: foo', $headers_list); 
     header_remove(); 
     ob_clean(); 
    } 
} 

Но дает ошибку:

Action_UserTest::testExecutePut() 
Cannot modify header information - headers already sent by (output started at /usr/lib/php/PHPUnit/Util/Printer.php:172) 
+0

Мне нужно знать, какую версию PHP вы используете для запуска этих тестов. –

ответ

0

Вы не можете поймать заголовки с помощью PHPUnit 3, если вы используете testdox или что-то вроде того. Я забыл, какой из них, но один из разработчиков формы был прослушиван, когда я в последний раз заглядывал в него.

Кроме того, вам необходимо создать bootstrap.php, и в нем все, что ему действительно нужно, это ob_start();.

Then phpunit -b bootstrap.php UnitTest.php. Посмотрите, работает ли это.

Если нет, если вы назначили щедрость этого вопроса, я рассмотрю его гораздо глубже.

Смежные вопросы