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

Запрос post в тестах Laravel

Формы обычно шлют POST: создать запись, войти, сохранить настройки. В тесте вызывают $this->post('/путь', [...]) - второй аргумент - поля формы, как будто их отправил браузер.

После успешного сохранения Laravel часто делает редирект. Его ловят через assertRedirect или статус 302:

<?php namespace Tests\Feature; use Tests\TestCase; class PostStoreTest extends TestCase { public function test_store_post(): void { $response = $this->post('/posts', [ 'title' => 'Test', 'text' => 'Text', ]); $response->assertStatus(302); } } ?>

assertRedirect('/posts') строже: проверяет не только редирект, но и куда именно. assertStatus(302) достаточно, если важно лишь «был редирект», без точного URL.

Ключи массива должны совпадать с именами полей формы и правил валидации. Если поле обязательное пропущено, вместо редиректа может прийти ответ с ошибками - тест подскажет об этом.

Напишите post-тест на создание записи с полями.

Проверьте ответ через assertStatus(302) или assertRedirect.

Зачем вторым аргументом передавать массив полей?

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить