PHPUnit:使用die响应测试RestFul API
问题描述:
我正在尝试PHPUnit在我的ZF2项目中测试一个动作。PHPUnit:使用die响应测试RestFul API
API使用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
方法从来没有达到过。
PHPUnit的输出:
PHPUnit 4.7.3 by Sebastian Bergmann and contributors.
..{"status":false,"message":"Please enter the UID","data":null}
PHPUnit的如何继续测试,所以我会得到一个结果?
答
我强烈建议尝试找到解决方案,重写您的控制器中返回您的JSON字符串的代码。使用die
来返回一个响应对象不是要走的路。
关于如何从控制器动作返回JSON可能是简单的一个例子是:
$model = new \Zend\View\Model\JsonModel($data);
return $model
其中$数据是你的数据阵列。结果将自动更改为JSON字符串。
这也将解决您的测试问题。