我如何在laravel中编写函数返回json数据的测试

时间:2017-04-26 07:46:34

标签: php laravel unit-testing phpunit laravel-5.1

我有一个返回json数据的函数

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

如何在功能测试中解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

示例(在单元测试文件中添加):

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

答案 1 :(得分:1)

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

 $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