Match JsonStructure in PhpUnit Test - Laravel 5.4 Match JsonStructure in PhpUnit Test - Laravel 5.4 laravel laravel

Match JsonStructure in PhpUnit Test - Laravel 5.4


Luckily, playing with different options I have solved this issue. A '*' is expected as key if we are to match a nested object in an array. We can see the reference here.

Source: TestResponse

I have set the structure like this for array ofobjects`

$response->assertJsonStructure([    'status',    'message',    'data' => [      '*' => [        'id',        'name',        'email',        'created_at',        'updated_at',        'user_id'      ]    ]  ]);

And if you want to match just a single object

$response->assertJsonStructure([    'status',    'message',    'data' => [      [        'id',        'name',        'email',        'created_at',        'updated_at',        'user_id'      ]    ]  ]);


I think you should use:

 $response->assertJsonStructure([    'status',    'message',    'data' => [      [ // change here        'id',        'name',        'email',        'created_at',        'updated_at',        'user_id'      ] // change here    ]  ]);