1

我一直在尝试按照本教程测试我的控制器-> Zend Framework 2.1 单元测试

我已经尝试了所有可能的代码变体来发送 POST 或 GET 数据以及调度,但是当我尝试从控制器中的 $_POST 数组访问该数据时,我从运行测试中得到的唯一结果是“未定义索引” .

我正在使用 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);
}

我在网上找不到如何解决此问题的任何帮助。任何人都可以帮忙吗?有任何想法吗?

4

2 回答 2

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() 构造函数似乎对传入的数组没有做任何事情。

于 2013-08-01T10:22:52.323 回答
0

获取/发布数据不发送,这个问题与服务器有关,您可以检查用于从服务器获取数据的功能。

于 2013-06-20T12:56:18.490 回答