Zend Framework 2单元测试控制器,POST / GET数据不发送。未定义的索引

时间:2013-06-20 12:52:58

标签: model-view-controller phpunit zend-framework2

我一直在尝试按照本教程测试我的控制器 - > 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);
}

我在网上找不到任何帮助来解决这个问题。任何人都可以帮忙吗?有什么想法吗?

2 个答案:

答案 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)

获取/发布数据未发送,此问题与服务器有关,是否可以检查用于从服务器获取数据的函数。