如何模拟身份验证令牌的功能测试
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.4,不再维护。
读这个页面的更新版本Symfob娱乐下载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
/ / src / Acme / DemoBundle /测试/控制器/ DemoControllerTest.php名称空间Acme\DemoBundle\测试\控制器;使用ob娱乐下载\包\FrameworkBundle\测试\WebTestCase;使用ob娱乐下载\组件\BrowserKit\饼干;使用ob娱乐下载\组件\安全\核心\身份验证\令牌\UsernamePasswordToken;类DemoControllerTest扩展WebTestCase{私人美元客户端=零;公共函数设置(){美元这- >客户=静态::createClient ();}公共函数testSecuredHello(){美元这- >登录();美元履带=美元这- >客户端- >请求(“得到”,“/演示/安全/ hello /法”);美元这- >assertTrue (美元这- >客户端- >getResponse ()- >isSuccessful ());美元这- >assertGreaterThan (0,美元履带- >过滤器(html:包含(“你好法”)的)- >count ());}私人函数登录(){美元会话=美元这- >客户端- >getContainer ()- >get (“会话”);美元防火墙=“secured_area”;美元令牌=新UsernamePasswordToken (“管理”,零,美元防火墙,数组(“ROLE_ADMIN”));美元会话- >集(“_security_”。美元防火墙序列化(美元令牌));美元会话- >save ();美元饼干=新饼干(美元会话- >getName (),美元会话- >getId ());美元这- >客户端- >getCookieJar ()- >集(美元饼干);}}
请注意
中描述的技术如何模拟HTTP身份验证功能测试清洁,因此首选方法。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。