Метод 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-статус ответа