我是新的测试,我使用PHPUnit编写测试。所有的网站都是使用MVC模式设计的。POST参数到PHPUnit测试
我想测试我的控制器上的每个方法,问题是这样的方法通过$ _POST变量接收参数。我怎样才能覆盖这个变量?
在此先感谢亚历杭
我是新的测试,我使用PHPUnit编写测试。所有的网站都是使用MVC模式设计的。POST参数到PHPUnit测试
我想测试我的控制器上的每个方法,问题是这样的方法通过$ _POST变量接收参数。我怎样才能覆盖这个变量?
在此先感谢亚历杭
最好的办法是抽象的请求到一个单独的类,而不是在所有访问超全局。这样你可以将实际的服务器和请求环境从应用程序中分离出来。然后,您可以轻松模拟请求。
即使有些人会说这不是干净,你可以在$_POST
设定数据,callng你的方法之前:这不是只读;-)
首先,如果你使用的是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)
此答案的第一部分非常有帮助。谢谢。 – 2011-04-10 15:19:16
即使是第二部分也帮助我进行了TYPO3和单元测试 – 2016-05-02 11:04:18
但有必要对此进行测试的要求独立的类。如何做到这一点最好的方法? – 2014-09-13 07:02:18
@ViktorTodorov进行单元测试。如果您想针对多个SAPIs进行测试:使用集成测试 – Gordon 2014-09-13 07:45:27