Я запускаю некоторые HTTP-тесты в Laravel 5.4, в основном используя assertJson helper method с phpunit. Когда я запускаю другие тесты на своих моделях, используя assertEquals, я обычно получаю очень хорошие отзывы о том, какие свойства, поля и т. Д. Отличаются от ожидаемых. Тем не менее, метод assertJson
только говорит мне, что там есть отличия, но не что эти отличия есть. Например, предположим, что у меня есть маршрут my/route
, который возвращает этот JSON:Просмотр различий JSON при тестировании HTTP в Laravel
{
"name": "test",
"foo": "bar"
}
Я мог бы запустить этот тест Laravel:
$response = $this->get("my/route");
$response->assertJson([
'name' => 'test',
'foo' => 'baz',
]);
Мой тест терпит неудачу, как и ожидалось. Тем не менее, в результате чего сообщения довольно бесполезно:
Failed asserting that an array has the subset Array &0 (
'name' => 'test'
'foo' => 'baz'
).
Для нетривиального примера с большим ответом, он может получить очень раздражает, чтобы попытаться выяснить, что отличается от ответов в формате JSON. Есть ли способ просмотреть конкретные различия между ожидаемыми и фактическими выходами, а не просто знать, что что-то отличается от двух?
Будет ли ответ JSON многомерным? –
@ RossWilson Да, наверное. Это для всех HTTP-тестов в целом, а не для одного конкретного запроса, но я определенно имею маршруты, которые возвращают многомерный JSON. –