如何测试多个客户端的交互
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 6.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何测试多个客户端的交互
如果你需要模拟不同客户端之间的交互(比如聊天),创建几个客户端:
1 2 3 4 5 6 7 8 9 10 11
/ /……使用ob娱乐下载\组件\HttpFoundation\响应;$哈利=静态::createClient ();$莎莉=静态::createClient ();$哈利->请求(“职位”,' /说/莎莉你好');$莎莉->请求(“得到”,' /消息');$这->assertequal(响应::HTTP_CREATED,$哈利->getResponse ()->getStatusCode ());$这->assertRegExp (“你好/”,$莎莉->getResponse ()->getContent ());
除非您的代码维护全局状态,或者它依赖于具有某种全局状态的第三方库,否则这种方法是有效的。在这种情况下,你可以隔离你的客户:
12 3 4 5 6 7 8 9 10 11 12 13 14
/ /……使用ob娱乐下载\组件\HttpFoundation\响应;$哈利=静态::createClient ();$莎莉=静态::createClient ();$哈利->使();$莎莉->使();$哈利->请求(“职位”,' /说/莎莉你好');$莎莉->请求(“得到”,' /消息');$这->assertequal(响应::HTTP_CREATED,$哈利->getResponse ()->getStatusCode ());$这->assertRegExp (“你好/”,$莎莉->getResponse ()->getContent ());
绝缘客户端透明地在一个专用的干净的PHP进程中运行它们的请求,从而避免了任何副作用。
提示
由于隔离客户机速度较慢,您可以将一个客户机保留在主进程中,并隔离其他客户机。
谨慎
隔离测试需要一些序列化和反序列化操作。方法时,如果测试包含不能序列化的数据,例如文件流UploadedFile
类时,您将看到关于的异常“不允许序列化”.这是PHP的一个技术限制,所以唯一的解决方案是禁用这些测试的隔离。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。