Symfony2 PHPunit测试从令牌存储中获取用户对象的函数

时间:2015-08-21 05:45:06

标签: symfony phpunit

我知道这个问题已经被问到,但是我无法让它工作,我无法看到我做错了什么。 我试图为一个函数编写测试,该函数依赖于登录的用户并从security.token_storage获取用户对象,但不幸的是我无法使其工作。要设置令牌,我的代码是

$token = new UsernamePasswordToken(
    $person, 
    $person->getPassword(), 
    'sso', 
    $person->getRoles()
);

$containerInterface->get('security.token_storage')->setToken($token);

$containerInterface->get('event_dispatcher')->dispatch(
    AuthenticationEvents::AUTHENTICATION_SUCCESS,
    new AuthenticationEvent($token)
);

其中$person是用户对象,'sso'是防火墙名称。当我运行一个测试,我从token_storage获取用户对象时,我得到null。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那你就错过了登录活动

$event = new InteractiveLoginEvent($request, $token);
$this->get("event_dispatcher")->dispatch("security.interactive_login", $event);

另外,但我不确定,你不需要这个片段

$containerInterface->get('event_dispatcher')->dispatch(
    AuthenticationEvents::AUTHENTICATION_SUCCESS,
    new AuthenticationEvent($token)
);