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

Метод assertAuthenticated

Метод assertAuthenticated применяется в тестах Laravel для проверки того, что текущий пользователь успешно аутентифицирован. Этот метод доступен в тестовом классе, который наследуется от TestCase, и позволяет утверждать, что запрос выполняется аутентифицированным пользователем. Метод не принимает никаких параметров и возвращает void.

Синтаксис

<?php $this->assertAuthenticated(); ?>

Пример

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

<?php namespace Tests\Feature\Auth; use Tests\TestCase; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; class LoginTest extends TestCase { use RefreshDatabase; public function test_user_can_authenticate() { $user = User::factory()->create([ 'email' => 'test@example.com', 'password' => bcrypt('password123'), ]); $response = $this->post('/login', [ 'email' => 'test@example.com', 'password' => 'password123', ]); $this->assertAuthenticated(); } } ?>

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

"Test passed: User is authenticated"

Пример

Давайте проверим, что пользователь не аутентифицирован при неверных учётных данных:

<?php namespace Tests\Feature\Auth; use Tests\TestCase; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; class LoginTest extends TestCase { use RefreshDatabase; public function test_user_cannot_authenticate_with_invalid_password() { $user = User::factory()->create([ 'email' => 'test@example.com', 'password' => bcrypt('password123'), ]); $response = $this->post('/login', [ 'email' => 'test@example.com', 'password' => 'wrongpassword', ]); $this->assertGuest(); } } ?>

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

"Test passed: User is guest"

Пример

Давайте проверим аутентификацию пользователя при доступе к защищённому маршруту:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; class ProfileTest extends TestCase { use RefreshDatabase; public function test_authenticated_user_can_access_profile() { $user = User::factory()->create(); $response = $this->actingAs($user) ->get('/profile'); $this->assertAuthenticated(); $response->assertStatus(200); } } ?>

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

"Test passed: User is authenticated and profile page is accessible"

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

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