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 字符串。
这也将解决您的测试问题。
我正在尝试使用 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 字符串。
这也将解决您的测试问题。