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

Метод loginUser класса KernelBrowser

Метод loginUser класса KernelBrowser выполняет программную аутентификацию пользователя в тестах Symfony. Первым параметром передаётся объект пользователя (реализующий UserInterface), вторым - имя файрвола (по умолчанию 'main'). Метод возвращает текущий объект KernelBrowser для цепочки вызовов. После вызова все последующие запросы через request будут выполняться от имени указанного пользователя.

Синтаксис

$client->loginUser(UserInterface $user, string $firewallContext = 'main');

Пример

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

<?php namespace App\Tests\Controller; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testLoginUser(): void { $client = static::createClient(); $user = new User(); $user->setEmail('user@example.com'); $user->setPassword('password'); $client->loginUser($user); $client->request('GET', '/admin'); $this->assertResponseIsSuccessful(); } } ?>

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

"OK (1 test, 1 assertion)"

Пример

Давайте укажем конкретный файрвол при аутентификации:

<?php namespace App\Tests\Controller; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class AdminControllerTest extends WebTestCase { public function testLoginUserWithFirewall(): void { $client = static::createClient(); $user = new User(); $user->setEmail('admin@example.com'); $user->setPassword('secret'); $client->loginUser($user, 'admin'); $client->request('GET', '/admin/dashboard'); $this->assertResponseIsSuccessful(); } } ?>

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

"OK (1 test, 1 assertion)"

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

  • класс KernelBrowser,
    который эмулирует браузер в тестах
  • метод request,
    который выполняет HTTP-запрос в тесте
  • класс WebTestCase,
    который создаёт тестовый клиент
  • метод loginUser,
    который аутентифицирует пользователя в WebTestCase
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить