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

assertForbidden

Метод assertForbidden применяется к объекту HTTP-ответа в тестах и проверяет, что статус-код ответа равен 403. В первом параметре можно передать сообщение об ошибке, которое будет выведено в случае провала проверки. Метод также может использоваться вместе с другими проверками для комплексного тестирования.

Синтаксис

<?php $response->assertForbidden($message); ?>

Пример

Давайте проверим, что маршрут /admin возвращает ошибку доступа для обычного пользователя:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; class AdminTest extends TestCase { public function test_admin_page_forbidden_for_regular_user() { $user = User::factory()->create([ 'is_admin' => false ]); $response = $this->actingAs($user) ->get('/admin'); $response->assertForbidden(); } } ?>

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

"Test passed: response status is 403"

Пример

Проверим, что неавторизованный пользователь не может получить доступ к личному кабинету:

<?php namespace Tests\Feature; use Tests\TestCase; class ProfileTest extends TestCase { public function test_profile_page_forbidden_for_guests() { $response = $this->get('/profile'); $response->assertForbidden('Access to profile is restricted'); } } ?>

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

"Test passed: response status is 403 with custom message"

Пример

Используем метод assertForbidden для проверки API-эндпоинта, который требует прав администратора:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; use App\Models\Role; class ApiTest extends TestCase { public function test_api_endpoint_forbidden_for_non_admin() { $user = User::factory()->create(); $user->role_id = Role::where('name', 'editor')->first()->id; $response = $this->actingAs($user) ->json('DELETE', '/api/users/1'); $response->assertForbidden(); } } ?>

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

"Test passed: API endpoint returns 403 for non-admin users"

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

  • метод assertStatus,
    который проверяет конкретный HTTP-статус
  • метод assertOk,
    который проверяет статус 200
  • метод assertUnauthorized,
    который проверяет статус 401
  • метод assertNotFound,
    который проверяет статус 404
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить