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

Метод assertSessionHasErrors

Метод assertSessionHasErrors применяется к объекту HTTP-теста для проверки наличия ошибок валидации в сессии. Он может принимать массив ключей (названий полей) для проверки конкретных ошибок, или массив с сообщениями для проверки текста ошибок. Если метод вызывается без параметров, он проверяет, что есть хотя бы одна ошибка валидации. Метод полезен при тестировании отправки форм с некорректными данными.

Синтаксис

<?php $this->assertSessionHasErrors($keys, $format, $errorBag); ?>

Параметры:

  • $keys - массив ключей (полей) для проверки наличия ошибок;
  • $format - формат сообщения для проверки;
  • $errorBag - имя пакета ошибок (по умолчанию 'default').

Пример

Давайте проверим, что после отправки POST-запроса на создание статьи с пустым полем 'title' возникает ошибка валидации:

<?php namespace Tests\Feature; use Tests\TestCase; class ArticleTest extends TestCase { public function test_article_creation_with_empty_title() { $data = [ 'title' => '', 'content' => 'Some content', 'status' => 'draft' ]; $response = $this->post('/articles', $data); $response->assertSessionHasErrors(['title']); } } ?>

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

"Test passed: session has error for 'title' field"

Пример

Проверим, что после отправки формы с некорректным email возникает ошибка в указанном пакете ошибок:

<?php namespace Tests\Feature; use Tests\TestCase; class UserRegistrationTest extends TestCase { public function test_registration_with_invalid_email() { $data = [ 'name' => 'John Doe', 'email' => 'invalid-email', 'password' => 'secret123' ]; $response = $this->post('/register', $data); $response->assertSessionHasErrors( ['email' => 'The email must be a valid email address.'], null, 'registration' ); } } ?>

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

"Test passed: session has validation error in 'registration' bag"

Пример

Проверим, что после отправки формы с несколькими ошибками валидации присутствуют ошибки для нескольких полей одновременно:

<?php namespace Tests\Feature; use Tests\TestCase; class ProductTest extends TestCase { public function test_product_creation_with_invalid_data() { $data = [ 'name' => '', 'price' => 'not-a-number', 'stock' => -5 ]; $response = $this->post('/products', $data); $response->assertSessionHasErrors(['name', 'price', 'stock']); } } ?>

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

"Test passed: session has errors for all required fields"

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

  • метод assertSessionHas,
    который проверяет наличие значения в сессии
  • метод assertSessionMissing,
    который проверяет отсутствие значения в сессии
  • метод assertValid,
    который проверяет, что валидация прошла успешно
  • метод assertInvalid,
    который проверяет наличие ошибок валидации в ответе JSON
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить