Параметры POST к тесту PHPUnit

Я являюсь новым на тестировании, я использую PHPUnit для теста записи. Весь сайт был разработан с помощью шаблона MVC.

Я хотел бы протестировать каждый метод на своих контроллерах, проблема состоит в том, что такие методы получают параметры хотя $ _POST переменная. Как я могу перезаписать эту переменную?

Заранее спасибо Alejandra

11
задан Alejandra 27 April 2010 в 16:12
поделиться

3 ответа

Лучшим подходом было бы выделить запрос в отдельный класс и вообще не обращаться к суперглобалам. Таким образом вы отделяете фактический сервер и среду запроса от приложения. Затем вы можете легко имитировать запрос.

16
ответ дан 3 December 2019 в 01:08
поделиться

Во-первых, если вы используете Zend_Test, используйте

$this->request->setMethod('POST')->setPost(array(insert array info here));

Если вы не используете его, попробуйте следующее:

Предупреждение: не лучшее решение, но это будет работать!

Поместите это в свой setUp fixture

 protected function setUp()
    {
        parent::setUp();
        $_POST = array();
    }

Затем, прежде чем вызывать свой тест, просто сделайте что-нибудь похожее на это:

$_POST = array(insert array data here)
19
ответ дан 3 December 2019 в 01:08
поделиться

Даже если кто-то скажет, что он не чистый , вы можете установить данные в $ _ POST , прежде чем вызывать свой методы: это не только для чтения; -)

10
ответ дан 3 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

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