我想编写这样的功能测试:
$user = $auth->login($username, $password);
然后我可以检查以下行为:
我不想为此进行HTTP请求。
我该怎么办?
我看到的所有示例都涉及模拟HTTP请求或不使用密码手动登录用户。
编辑:我使用Guard。
答案 0 :(得分:1)
您可以使用UsernamePasswordToken
和Symfony身份验证管理器执行此操作,如文档中所述,尤其是第一个示例:https://symfony.com/doc/current/components/security/authentication.html
答案 1 :(得分:0)
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
// main - your main firewall key
$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$tokenStorage->setToken($token);