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

Метод put

Метод put применяется к тестовому экземпляру приложения и выполняет PUT-запрос к указанному URL. Первым параметром передаётся путь, вторым - массив данных запроса, третьим - массив заголовков. Метод возвращает экземпляр TestResponse, который содержит ответ сервера.

Синтаксис

<?php $response = $this->put($uri, $data, $headers); ?>

Пример

Давайте обновим статью с идентификатором 1:

<?php namespace Tests\Feature; use App\Models\Article; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class ArticleTest extends TestCase { use RefreshDatabase; public function test_update_article() { $article = Article::create([ 'title' => 'Old title', 'content' => 'Old content', 'status' => 'draft' ]); $data = [ 'title' => 'New title', 'content' => 'Updated content', 'status' => 'published' ]; $res = $this->put("/api/articles/{$article->id}", $data); $res->assertOk(); $res->assertJsonPath('title', 'New title'); } } ?>

Пример

Давайте отправим PUT-запрос с заголовками:

<?php namespace Tests\Feature; use App\Models\Article; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class ArticleTest extends TestCase { use RefreshDatabase; public function test_update_with_headers() { $article = Article::create([ 'title' => 'Article title', 'content' => 'Article content', 'status' => 'draft' ]); $data = [ 'title' => 'Updated title', 'content' => 'Updated content' ]; $headers = [ 'X-Custom-Header' => 'CustomValue', 'Accept' => 'application/json' ]; $res = $this->put( "/api/articles/{$article->id}", $data, $headers ); $res->assertOk(); $res->assertJsonPath('status', 'draft'); } } ?>

Пример

Давайте проверим валидацию при обновлении статьи:

<?php namespace Tests\Feature; use App\Models\Article; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; class ArticleTest extends TestCase { use RefreshDatabase; public function test_update_validation_fails() { $article = Article::create([ 'title' => 'Valid title', 'content' => 'Valid content', 'status' => 'draft' ]); $data = [ 'title' => '', 'content' => 'Content without title' ]; $res = $this->put("/api/articles/{$article->id}", $data); $res->assertUnprocessable(); $res->assertJsonValidationErrors(['title']); } } ?>

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

  • метод get,
    который выполняет GET-запрос в тестах
  • метод post,
    который выполняет POST-запрос в тестах
  • метод patch,
    который выполняет PATCH-запрос в тестах
  • метод delete,
    который выполняет DELETE-запрос в тестах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить