Что вызывает assertJson и его варианты не работают? - PullRequest
0 голосов
/ 27 сентября 2019

Я не уверен, почему тест не пройден.Насколько я понимаю, функция assertJson будет в основном проверять, есть ли где-нибудь пары ключ-значение из моего массива в ответе JSON.Взглянув на ответ JSON, я вижу, что он определенно есть, поэтому я не уверен, что пропускаю.Похоже, что данные находятся в еще одном массиве, но из того, что я прочитал, assertJson должен иметь возможность находить данные независимо от их глубины вложения.

Я пробовал другие предлагаемые варианты, такие как «assertJsonFragment» и даже вручную конвертировалмой json-ответ на массив и проверку этого с помощью assertArraySubset, который ... вроде того, что assertJson делает уже в соответствии с документами.

Test:

public function testGetExistingGroupMessage(){
            $user = factory(User::class)->create();
            $group = factory(Group::class)->create();
            $group->users()->save($user);
            //Because default factory also makes a new user and group, we're going to make the model instead then overwrite them.
            $message = factory(GroupMessage::class)->make();
            $message->user_id = $user->id;
            $message->group_id = $group->id;
            $group->messages()->save($message);

            $response = $this->actingAs($user,'api')->json('GET','/api/group-messages/'.$group->id);
            $response->assertStatus(200)->assertJson([
                    'user_id' => $user->id,
                    'message' => $message->message,
                    'group_id' => $group->id,
            ]);
    }

Вывод:

Unable to find JSON:

[{
    "user_id": 206,
    "message": "my_message",
    "group_id": 97
}]

within response JSON:

[[
    {
        "id": 31,
        "user_id": 206,
        "message": "my_message",
        "group_id": 97,
        "filename": null,
        "file": null,
        "file_path": null,
        "image": null,
        "image_path": null,
        "created_at": "2019-09-27 01:53:20",
        "updated_at": "2019-09-27 01:53:20",
        "deleted_at": null,
        "lat": null,
        "lng": null,
        "user": {
            "id": 206,
            "name": "Michaela Shields",
            "email": "muller.cordell@example.org",
            "api_token": null,
            "created_at": "2019-09-27 01:53:20",
            "updated_at": "2019-09-27 01:53:20",
            "deleted_at": null,
            "agent_id": null,
            "device_token": null
        }
    }
]].


Failed asserting that an array has the subset Array &0 (
    'user_id' => 206
    'message' => 'my_message'
    'group_id' => 97
).
--- Expected
+++ Actual
@@ @@
       'device_token' => NULL,
     ),
   ),
-  'user_id' => 206,
-  'message' => 'my_message',
-  'group_id' => 97,
 )
...