2017-04-26 91 views
3

函數返回JSON數據測試我有一個功能,它返回JSON數據我怎麼能寫在laravel

return response()->json([ 
    'status' => 'OK', 
    'data' => [ 
     'id' => $dataInfo->id, 
    ], 
]); 

我怎麼能在測試解決這個問題的功能?

回答

1

你可以看看:https://laravel.com/docs/5.4/http-tests#testing-json-apis

例(在你的單元測試文件中添加以下):

$this->json('post', 'your/route') 
    ->assertStatus(200) 
    ->assertJson([ 
     'status' => 'OK', 
    ]); 
+1

PHPUnit_Framework_Exception:參數#1 PHPUnit_Framework_Assert :: assertJson((無值))必須是一個字符串 我得到這個 – flower

1

您可以使用assertJson()和其他類似的方法在Laravel 5.4:

$this->json('put', 'api/some-url') 
     ->assertStatus(200) 
     ->assertJson([ 
      'status' => 'OK', 
      'data' => [ 
       'id' => 5, 
      ] 
     ]); 

https://laravel.com/docs/5.4/http-tests#testing-json-apis

在Laravel 5.3和更低,JSON測試方法不同。主要使用的是seeJson()

https://laravel.com/docs/5.3/application-testing#testing-json-apis

+0

的ID我手動輸入不響應? – flower

+0

@flower通常您在測試響應時期待某些指定的數據。 –

+0

我試試:)但我得到這個錯誤 PHPUnit_Framework_Exception:PHPUnit_Framework_Assert :: assertJson()的參數#1(無值)必須是字符串 – flower