Я являюсь новым на тестировании, я использую PHPUnit для теста записи. Весь сайт был разработан с помощью шаблона MVC.
Я хотел бы протестировать каждый метод на своих контроллерах, проблема состоит в том, что такие методы получают параметры хотя $ _POST переменная. Как я могу перезаписать эту переменную?
Заранее спасибо Alejandra
Лучшим подходом было бы выделить запрос в отдельный класс и вообще не обращаться к суперглобалам. Таким образом вы отделяете фактический сервер и среду запроса от приложения. Затем вы можете легко имитировать запрос.
Во-первых, если вы используете 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)
Даже если кто-то скажет, что он не чистый , вы можете установить данные в $ _ POST
, прежде чем вызывать свой методы: это не только для чтения; -)