我已经在 security.interactive_login 事件上实现了一个监听器,以设置一个在我的应用程序中使用的会话变量,正如Symfony2 中所建议的:成功登录事件后,执行一组操作。问题是在功能测试中没有触发 security.interactive_login 事件(我想这是合乎逻辑的,因为没有实际的交互式登录)。鉴于此限制:如何使用用户登录时设置的会话变量运行功能测试?
问问题
468 次
2 回答
1
如果您使用基本身份验证,您最终可以手动触发事件处理程序进行测试,但我认为更正确的方法是通过登录表单登录到应用程序并使用客户端提交它 - 应该以这种方式触发事件侦听器。
于 2012-10-31T13:28:00.987 回答
0
只是为了详细介绍解决方法:
在功能测试用例中我改变了
$client = static::createClient(array(), array(
'PHP_AUTH_USER'=>'alberto'
,'PHP_AUTH_PW'=>'********'
)
);
为了
$client = static::createClient();
$crawler = $client->request('GET','/secured/login');
$form = $crawler->selectButton('Aceptar')->form();
$form['_username'] = 'alberto';
$form['_password'] = '********';
$crawler = $client->submit($form);
于 2012-11-05T20:05:24.820 回答