Gia*_*mPy 3 laravel-5 laravel-testing
这是响应:
[
{
"data":{
"locales":{
"translate":[
{
"created_at":"2018-05-28 12:49:53",
"deleted_at":null,
"id":1,
"key":"nl_NL",
"name":"Netherlands (Nederlands)",
"updated_at":"2018-05-28 12:49:53"
}
],
"validate":[
{
"created_at":"2018-05-28 12:49:53",
"deleted_at":null,
"id":2,
"key":"it_IT",
"name":"Italian (Italiano)",
"updated_at":"2018-05-28 12:49:53"
}
]
}
},
"error":false,
"message":null
}
]
Run Code Online (Sandbox Code Playgroud)
我想断言以下片段是响应的一部分:
1) ['translate' => [['key' => 'nl_NL']]]
2) ['validate' => [['key' => 'it_IT']]]
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以断言该translate数组至少包含一个键为的元素nl_NL并且validate包含一个键为的元素it_IT?
$response->assertSuccessful()->assertJsonFragment([
'translate' => [['key' => 'nl_NL']],
'validate' => [['key' => 'it_IT']
]);
Run Code Online (Sandbox Code Playgroud)
这是不可能的 assertJsonFragment()。
您可以执行以下操作:
$this->assertTrue(
collect($response->decodeResponseJson('0.data.locales.translate'))
->pluck('key')->contains('nl_NL')
);
Run Code Online (Sandbox Code Playgroud)