我一直在尝试按照本教程测试我的控制器 - > Zend Framework 2.1 Unit testing
我已经尝试了每个可能的代码变体来发送POST或GET数据以及调度,但是当我尝试从$ _POST数组访问那些数据时,我从运行测试中得到的唯一回报就是“Undefined Index”在控制器中。
我正在使用PHPUnit 3.7.17,除了POST和GET数据之外,其他所有工作都很完美,我尝试了以下代码:
public function testIndexActionCanBeAccessed() {
$this->getRequest()
->setMethod("POST")
->setPost(new \Zend\Stdlib\Parameters(array('argument' => 'value')));
$response = $this->dispatch('/app/api/index');
$this->assertResponseStatusCode(200);
}
和
public function testIndexActionCanBeAccessed() {
$post_data = array("argument" => "value");
$response = $this->dispatch("/app/api/index", "POST", $post_data);
$this->assertResponseStatusCode(200);
}
我在网上找不到任何帮助来解决这个问题。任何人都可以帮忙吗?有什么想法吗?
答案 0 :(得分:2)
$p = new Parameters();
$p->set('username','foo');
$p->set('password','bar');
$this->getRequest()->setMethod('POST');
$this->getRequest()->setPost($p);
$this->dispatch('/login');
这对我有用。 Parameters()构造函数似乎不是您所期望的那样。
文档说它需要一个数组,但我只能以这种方式工作。 Stdlib \ Parameters()构造函数似乎对传入的数组没有任何作用。
答案 1 :(得分:0)
获取/发布数据未发送,此问题与服务器有关,是否可以检查用于从服务器获取数据的函数。