PHPUnit:使用模具响应测试 RestFul API

PHPUnit: Testing RestFul API with die response

我正在尝试使用 PHPUnit 测试我的 ZF2 项目中的一个动作。

API return 使用 die($jsonObject) 的 JSON 字符串。

这会导致 PHPUnit 测试停止处理并终止 JSON 响应。

public function testStartupAction() {

    $this->dispatch('/api/v3/startup', "POST", array());

    $this->assertJson('{"status":false,"message":"Please enter the UID","data":null}');

}

assetJson 方法从未达到。

PHP单元输出:

PHPUnit 4.7.3 by Sebastian Bergmann and contributors.
..{"status":false,"message":"Please enter the UID","data":null}

PHPUnit 如何才能继续测试以便我得到结果?

我强烈建议尝试通过重写控制器中 return 的 JSON 字符串的代码来找到解决方案。使用 die 到 return 响应对象不是正确的方法。

有关如何从您的控制器操作 return JSON 的示例可以很简单:

$model = new \Zend\View\Model\JsonModel($data);
return $model

其中 $data 是您的数据数组。结果将自动更改为 JSON 字符串。

这也将解决您的测试问题。