如何在ZF2上测试404 json响应

时间:2016-09-05 14:14:17

标签: zend-framework2 phpunit

考虑到在我的Zend Framework模块中,我可以通过浏览器或REST访问。当我通过REST获得404时,这就是内容:

{"httpStatus":404,"title":"Not Found"}

那么如何使用PHPUnit测试此响应?

我已经测试了另一条有效的路线:

public function testIndexActionCanBeAccessed()
{      
    $this->dispatch('/ws/dashboard');
    $this->assertResponseStatusCode(200);

    $this->assertModuleName('Ws');
    $this->assertControllerName('Ws\Controller\Dashboard');
    $this->assertControllerClass('DashboardController');
    $this->assertMatchedRouteName('application/ws');
}

但我不知道如何处理其他情况。

public function testIndexActionCanBeAccessed()
{
    $this->dispatch('/ws/asd');
    $this->assertResponseStatusCode(404); // this is OK
    // but how check the json response?
}

另外,如果我这样做$response = $this->getResponse();我得到了整个HTML 404 html文件,这不是我想要的。

1 个答案:

答案 0 :(得分:0)

您可能需要检查以确保控制器实际返回JSON响应。

此外,AJAX请求的Accept标头应指定application / json。