2015-06-21 104 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字符串。

這也將解決您的測試問題。