В моем контроллере я использую службу security.token_storage, чтобы подключить пользователя, например:
$client = $this->container->get('security.token_storage')->getToken()->getUser();
$username = $client->getNom()." ".$client->getPrenom();
В своем функциональном тесте я пытаюсь войти в систему пользователя, чтобы получить его в своем контроллере, но если я отлаживаю внутри, он говорит мне, что я анонимный:
private function logIn()
{
$client = static::createClient();
$firewallName = 'main';
$token = new UsernamePasswordToken("admin", "admin", "main", array());
static::$kernel->getContainer()->get('security.token_storage')->setToken($token);
$session = static::$kernel->getContainer()->get('session');
$session->set('_security_'.$firewallName, serialize($token));
$session->save();
$cookie = new Cookie($session->getName(), $session->getId());
$client->getCookieJar()->set($cookie);
return $client;
}
public function testIndex()
{
$client = $this->logIn();
$crawler = $client->request('GET', '/');
$login = $crawler->filter("#username_index")->text();
$this->assertEquals($login, 'ADMIN NOM Admin Prenom');
}
Как я могу передать моему пользователю моего теста мой основной код?
отредактируйте свое сообщение, чтобы добавить код, который вы прокомментировали;)
Вы что-то упускаете. Взгляните на этот ТАК ответ, чтобы узнать что.
@DonCallisto пробую, но не получается ... честно говоря, может я не правильно использую ...
Хорошо, но почему вы используете PHPUnit для функциональных тестов?
@KamilAdryjanek - не такая уж редкость ...
Вы следовали этой документации? symfony.com/doc/current/testing/http_authentication.html Вам необходимо добавить переменную http_basic: ~ в вашу тестовую среду
@NathanMeyer я использую не этот метод, в этой документации я использую второе решение.
Хорошо, я вижу кое-что еще. $token = new UsernamePasswordToken("admin", "admin", "main", array()); Почему бы вам не объявить здесь роль?
То же самое с ролями и без ...
@Topheur Если вы не объявляете роль, я не думаю, что у вашего пользователя будет какая-либо роль пользователя: github.com/symfony/symfony/blob/master/src/Symfony/Component /…




Напишите, пожалуйста, что вы хотите протестировать?