我试图在功能测试中对用户进行身份验证,以检查他是否被重定向。
我的控制器:
public function preRegisterAction()
{
if ($this->getUser() instanceof User) {
return new RedirectResponse();
}
return $this->render(
'pages/pre-register.html.twig'
);
}
我的测试:
public function setUp()
{
$this->client = static::createClient();
}
public function testPreRegisterAction()
{
$user = new User();
$user->setEmail('test@test.fr');
$user->setCreated(new \DateTime());
$user->setId(43);
$tokenStorage = $this->client->getContainer()->get('security.token_storage');
$tokenStorage->setToken(new UsernamePasswordToken($user, null, 'main', ['ROLE_USER']));
$this->client->request('GET', '/choix');
$this->assertTrue($this->client->getResponse()->isRedirection());
}
我不知道断言的使用是否合适。但即使使用令牌存储也似乎不起作用。当我在控制器中执行一个var_dump的tokenstorage时,我没有看到我在测试中注入的用户。
答案 0 :(得分:0)
我不确切地知道为什么你的代码在测试中不起作用。我对安全组件没有深入了解,但有两种建议的方法来验证用户。