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

Метод json

Метод json применяется в тестовых классах Laravel для эмуляции отправки JSON-запросов к вашему приложению. Первым параметром передаётся HTTP-метод (например, 'GET', 'POST', 'PUT', 'DELETE'), вторым - URI запроса, третьим - массив данных, которые будут преобразованы в JSON и отправлены в теле запроса. Метод возвращает экземпляр TestResponse, который позволяет выполнять различные проверки.

Синтаксис

<?php $this->json($method, $uri, $data); ?>

Пример

Давайте отправим POST-запрос на создание новой статьи с данными в формате JSON:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; class ArticleTest extends TestCase { public function test_store_article() { $data = [ 'title' => 'article', 'content' => 'text', ]; $response = $this->json('POST', '/api/articles', $data); $response->assertStatus(201); $this->assertDatabaseHas('articles', $data); } } ?>

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

"Test passed"

Пример

Отправим GET-запрос с параметрами в JSON-формате для получения отфильтрованных статей:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; class ArticleTest extends TestCase { public function test_filter_articles() { $filters = [ 'status' => 'published', 'limit' => 5, ]; $response = $this->json('GET', '/api/articles', $filters); $response->assertOk(); $response->assertJsonCount(5, 'data'); } } ?>

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

"Test passed"

Пример

Отправим PUT-запрос для обновления статьи с идентификатором 1:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; class ArticleTest extends TestCase { public function test_update_article() { $article = Article::factory()->create(); $updatedData = [ 'title' => 'updated article', 'content' => 'updated text', ]; $response = $this->json('PUT', "/api/articles/{$article->id}", $updatedData); $response->assertOk(); $this->assertDatabaseHas('articles', $updatedData); } } ?>

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

"Test passed"

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

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