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

Метод assertSessionHas

Метод assertSessionHas применяется в тестах Laravel для проверки, что в сессии присутствует указанный ключ с определённым значением. Первым параметром передаётся ключ сессии, вторым - ожидаемое значение (необязательно). Если второй параметр не указан, проверяется только наличие ключа в сессии.

Синтаксис

<?php $this->assertSessionHas($key, $value); ?>

Пример

Давайте проверим, что после выполнения POST-запроса в сессии сохранился ключ 'user_id' с конкретным значением:

<?php use TestsTestCase; use AppModelsUser; class UserTest extends TestCase { public function test_user_created() { $user = User::factory()->create(); $response = $this->post('/user/create', [ 'name' => 'John Doe', 'email' => 'john@example.com', ]); $this->assertSessionHas('user_id', $user->id); } } ?>

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

"Test passed"

Пример

Проверим только наличие ключа в сессии без проверки значения:

<?php use TestsTestCase; class SessionTest extends TestCase { public function test_session_has_data() { $response = $this->post('/data/store', [ 'field' => 'example' ]); $this->assertSessionHas('success_message'); } } ?>

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

"Test passed"

Пример

Проверим, что в сессии присутствует массив данных:

<?php use TestsTestCase; class ArraySessionTest extends TestCase { public function test_session_has_array_data() { $response = $this->get('/user/profile'); $this->assertSessionHas('user_data', [ 'name' => 'John', 'age' => 30 ]); } } ?>

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

"Test passed"

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

  • метод assertSessionHasErrors,
    который проверяет наличие ошибок валидации в сессии
  • метод assertSessionMissing,
    который проверяет отсутствие ключа в сессии
  • метод withSession,
    который устанавливает данные в сессию перед запросом
  • метод assertStatus,
    который проверяет HTTP-статус ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить