Параметры POST для теста PHPUnit - PullRequest
11 голосов
/ 27 апреля 2010

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

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

Спасибо заранее Алехандра

Ответы [ 3 ]

19 голосов
/ 28 апреля 2010

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

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

Если вы не используете это, попробуйте это:

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

Поместите это в свой прибор

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

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

$_POST = array(insert array data here)
16 голосов
/ 27 апреля 2010

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

9 голосов
/ 27 апреля 2010

Даже если некоторые скажут, что это не clean , вы можете установить данные в $_POST, перед вызовом ваших методов: это не только чтение; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...