我有一个以这种格式返回JSON响应的注册API
{
"meta": {
//response metadata
},
"data": {
//user object
}
}
我想用AssertableJson
测试这个响应,但我只关心用户对象。
如何仅将AssertableJson
用于响应的data属性?
我试过类似的方法但没有成功
$response->data->assertJson(
function(AssertableJson $json){
$json->whereType('id', 'string')
->where('email', 'email@gmail.com')
->etc();
}
);
1条答案
按热度按时间rxztt3cl1#
要仅对响应的“data”属性使用Laravel的AssertJson方法,可以将“data”属性作为第二个参数传递给AssertJson方法。例如:
这将测试响应的“data”属性是否与预期值匹配。如果“data”属性与预期值不匹配,测试将失败。
还可以使用AssertJsonStructure方法测试“data”属性的结构,而无需指定每个字段的确切值。例如:
这将测试“data”属性是否包含一个数组,该数组的对象包含“id”、“name”和“email”字段,但不测试这些字段的特定值。