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

Метод assertUnauthorized

Метод assertUnauthorized применяется к объекту HTTP-ответа в тестах и проверяет, что сервер вернул статус 401 Unauthorized. Этот статус указывает на то, что запрос требует аутентификации пользователя, которая не была предоставлена или недействительна. Метод часто используется при тестировании защищённых маршрутов, контроллеров и middleware, чтобы убедиться, что доступ запрещён для неавторизованных пользователей. Метод не принимает никаких параметров и возвращает тот же объект ответа для цепочки вызовов.

Синтаксис

<?php $response->assertUnauthorized(); ?>

Пример

Давайте протестируем маршрут '/profile', который требует аутентификации. Сделаем запрос без токена и проверим, что возвращается статус 401:

<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; class ProfileTest extends TestCase { public function test_profile_requires_authentication() { $res = $this->getJson('/api/profile'); $res->assertUnauthorized(); } } ?>

Результат выполнения кода (тест пройден):

"OK (1 test, 1 assertion)"

Пример

Проверим, что защищённый маршрут возвращает 401 при использовании неверного токена. Создадим запрос с заголовком авторизации, содержащим некорректный токен:

<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; class ApiTest extends TestCase { public function test_invalid_token_returns_unauthorized() { $res = $this->withHeaders([ 'Authorization' => 'Bearer invalid_token' ])->getJson('/api/profile'); $res->assertUnauthorized(); } } ?>

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

"OK (1 test, 1 assertion)"

Пример

Используем метод assertUnauthorized вместе с другими проверками. Например, проверим, что ответ содержит сообщение об ошибке и имеет правильную структуру:

<?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; class AuthTest extends TestCase { public function test_unauthorized_response_structure() { $res = $this->getJson('/api/admin/dashboard'); $res->assertUnauthorized() ->assertJson([ 'message' => 'Unauthenticated.' ]) ->assertJsonStructure([ 'message' ]); } } ?>

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

"OK (1 test, 3 assertions)"

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

  • метод assertStatus,
    который проверяет произвольный код статуса HTTP
  • метод assertForbidden,
    который проверяет статус 403 (Forbidden)
  • метод assertOk,
    который проверяет статус 200 (OK)
  • метод actingAs,
    который используется для аутентификации в тестах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить