【发布时间】:2017-07-28 04:58:38
【问题描述】:
我正在创建一个单元测试并想测试响应中返回的JSON 结构。我知道TestResponse 提供了一种方法assertJsonStructure 来匹配您的JSON 响应的结构。但由于某种原因,我无法将$structure 映射到我的回复,结果测试失败。让我分享所需的sn-ps。
端点响应
{
"status": true,
"message": "",
"data": [
{
"id": 2,
"name": "Shanelle Goodwin",
"email": "chaz43@example.net",
"created_at": "2017-03-05 16:12:49",
"updated_at": "2017-03-05 16:12:49",
"user_id": 1
}
]
}
测试函数
public function testEndpoint(){
$response = $this->get('/api/manufacturer/read', [], $this->headers);
$response->assertStatus(200);
$response->assertJsonStructure([
'status',
'message',
'data' => [
{
'id',
'name',
'email',
'created_at',
'updated_at',
'user_id'
}
]
]);
var_dump("'/api/manufacturer/read' => Test Endpoint");
}
data 数组中可以有多个节点,这就是为什么我试图在结构中提及该数组但似乎它没有正确映射。任何帮助将不胜感激:-)
【问题讨论】:
标签: laravel unit-testing laravel-5 phpunit laravel-5.4