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

Метод assertAuthenticatedAs

Метод assertAuthenticatedAs используется в тестах Laravel для проверки, что текущий аутентифицированный пользователь соответствует переданной модели. Первым параметром передаётся экземпляр модели пользователя, вторым необязательным параметром можно указать имя охранника (guard), если используется нестандартная аутентификация.

Синтаксис

<?php $this->assertAuthenticatedAs($user, $guard); ?>

Пример

Давайте проверим, что после входа пользователь аутентифицирован именно как модель User с идентификатором 1:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; class AuthTest extends TestCase { public function test_user_can_login() { $user = User::factory()->create([ 'email' => 'user@example.com', 'password' => bcrypt('password123') ]); $this->post('/login', [ 'email' => 'user@example.com', 'password' => 'password123' ]); $this->assertAuthenticatedAs($user); } } ?>

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

"OK"

Пример

Давайте проверим аутентификацию с использованием определённого охранника 'admin':

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Admin; class AdminAuthTest extends TestCase { public function test_admin_can_login() { $admin = Admin::factory()->create([ 'email' => 'admin@example.com', 'password' => bcrypt('admin123') ]); $this->post('/admin/login', [ 'email' => 'admin@example.com', 'password' => 'admin123' ]); $this->assertAuthenticatedAs($admin, 'admin'); } } ?>

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

"OK"

Пример

Проверим, что метод assertAuthenticatedAs выбросит исключение, если пользователь не аутентифицирован или аутентифицирован под другой учётной записью:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; class AuthFailedTest extends TestCase { public function test_assert_fails_when_wrong_user() { $user1 = User::factory()->create(); $user2 = User::factory()->create(); $this->actingAs($user1); $this->assertAuthenticatedAs($user2); } } ?>

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

"PHPUnit\\Framework\\ExpectationFailedException: The authenticated user is not the expected user."

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

  • метод assertAuthenticated,
    который проверяет, что пользователь аутентифицирован
  • метод actingAs,
    который устанавливает текущего аутентифицированного пользователя
  • метод assertGuest,
    который проверяет, что пользователь не аутентифицирован
  • класс TestCase,
    базовый класс для всех тестов в Laravel
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить