如何模拟身份验证令牌的功能测试

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何模拟身份验证令牌的功能测试

在功能测试验证请求可能减缓套件。特别是当它可能成为一个问题form_login使用,因为它需要额外的要求填写并提交表单。

解决方案之一是使用配置防火墙http_basic在测试环境中解释如何模拟HTTP身份验证功能测试。另一种方法是创建一个令牌并将它存储在一个会话。在这样做时,您必须确保一个适当的cookie发送请求。下面的例子演示了这种技术:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
/ /测试/ AppBundle /控制器/ DefaultControllerTest.php名称空间测试\Appbundle\控制器;使用欧宝娱乐app下载地址\\FrameworkBundle\测试\WebTestCase;使用欧宝娱乐app下载地址\组件\BrowserKit\饼干;使用欧宝娱乐app下载地址\组件\安全\核心\身份验证\令牌\UsernamePasswordToken;DefaultControllerTest扩展WebTestCase{私人美元客户端=;公共函数设置(){美元- >客户=静态::createClient ();}公共函数testSecuredHello(){美元- >登录();美元履带=美元- >客户端- >请求(“得到”,“/管理”);美元- >assertTrue (美元- >客户端- >getResponse ()- >isSuccessful ());美元- >assertGreaterThan (0,美元履带- >过滤器(html:包含(“管理仪表板”)”)- >count ());}私人函数登录(){美元会话=美元- >客户端- >getContainer ()- >get (“会话”);/ /防火墙上下文(默认为防火墙的名字)美元防火墙=“secured_area”;美元令牌=UsernamePasswordToken (“管理”,,美元防火墙,数组(“ROLE_ADMIN”));美元会话- >集(“_security_”美元防火墙序列化(美元令牌));美元会话- >save ();美元饼干=饼干(美元会话- >getName (),美元会话- >getId ());美元- >客户端- >getCookieJar ()- >集(美元饼干);}}

请注意

中描述的技术如何模拟HTTP身份验证功能测试清洁,因此首选方法。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。