2015-06-21 83 views
0

我正在尝试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的如何继续测试,所以我会得到一个结果?

回答

2

我强烈建议尝试找到解决方案,重写您的控制器中返回您的JSON字符串的代码。使用die来返回一个响应对象不是要走的路。

关于如何从控制器动作返回JSON可能是简单的一个例子是:

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

其中$数据是你的数据阵列。结果将自动更改为JSON字符串。

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