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

Метод postJson

Метод postJson применяется в тестовых классах Laravel для имитации POST-запроса с JSON-данными на указанный маршрут. Первым параметром передаётся URL, вторым - массив данных, которые будут преобразованы в JSON. Третьим параметром можно передать дополнительные заголовки. Метод возвращает экземпляр класса TestResponse, позволяющий выполнять различные проверки ответа.

Синтаксис

<?php $this->postJson($uri, $data, $headers); ?>

Пример

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

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_create_article() { $data = [ 'title' => 'article', 'content' => 'text', 'status' => 'published' ]; $res = $this->postJson('/api/articles', $data); $res->assertStatus(201); } } ?>

Пример

Отправим запрос с дополнительными заголовками для авторизации:

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_create_article_with_auth() { $data = [ 'title' => 'article', 'content' => 'text', 'status' => 'published' ]; $headers = [ 'Authorization' => 'Bearer token_123' ]; $res = $this->postJson('/api/articles', $data, $headers); $res->assertStatus(201); } } ?>

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

"Status: 201 Created"

Пример

Проверим, что сервер возвращает корректный JSON-ответ после создания:

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_article_creation_response() { $data = [ 'title' => 'article', 'content' => 'text', 'status' => 'published' ]; $res = $this->postJson('/api/articles', $data); $res->assertStatus(201) ->assertJson([ 'success' => true, 'message' => 'article created' ]); } } ?>

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

"JSON response matches expected structure"

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

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