РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1184 of 1392 menu

Метод getJson

Метод getJson применяется в тестовых классах Laravel для выполнения GET-запросов к защищённым маршрутам с установкой заголовка Accept: application/json. Первым параметром передаётся URL маршрута, вторым - массив данных запроса, третьим - дополнительные заголовки. Метод возвращает объект ответа, который можно использовать для последующих проверок.

Синтаксис

<?php $this->getJson($uri, $data = [], $headers = []); ?>

Пример

Давайте отправим GET-запрос к маршруту '/api/users' и проверим, что ответ содержит список пользователей:

<?php namespace Tests\Feature; use Tests\TestCase; class UserTest extends TestCase { public function test_get_users_list() { $res = $this->getJson('/api/users'); $res->assertStatus(200) ->assertJsonStructure([ 'data' => [ '*' => ['id', 'name', 'email'] ] ]); } } ?>

Пример

Давайте отправим GET-запрос с параметрами фильтрации и проверим содержимое JSON-ответа:

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_filter_articles() { $res = $this->getJson('/api/articles', [ 'status' => 'published', 'limit' => 5 ]); $res->assertOk() ->assertJsonCount(5, 'data') ->assertJsonPath('data.0.status', 'published'); } } ?>

Результат выполнения кода:

"Test passed: JSON response valid"

Пример

Давайте отправим запрос с дополнительными заголовками и проверим, что возвращается ошибка авторизации:

<?php namespace Tests\Feature; use Tests\TestCase; class ApiTest extends TestCase { public function test_unauthorized_access() { $res = $this->getJson('/api/admin/users', [], [ 'X-API-Key' => 'invalid-key' ]); $res->assertStatus(401) ->assertJson([ 'error' => 'Unauthorized' ]); } } ?>

Результат выполнения кода:

"Test passed: 401 Unauthorized response received"

Смотрите также

  • метод get,
    который выполняет обычный GET-запрос без установки JSON-заголовка
  • метод postJson,
    который отправляет POST-запрос с JSON-данными
  • метод json,
    который отправляет запрос с JSON-данными и ожидает JSON-ответ
  • метод assertJson,
    который проверяет наличие определённых данных в JSON-ответе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить