感谢你来到这里
我真的很激动
盼望,能有你的支持
捐赠可扫描二维码转账支付
支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
如果你需要模拟不同客户端(clients)之间的互动(比如当它是聊天),创建若干clients:
1 2 3 4 5 6 7 8 9 10 | // ...
$harry = static::createClient();
$sally = static::createClient();
$harry->request('POST', '/say/sally/Hello');
$sally->request('GET', '/messages');
$this->assertEquals(Response::HTTP_CREATED, $harry->getResponse()->getStatusCode());
$this->assertRegExp('/Hello/', $sally->getResponse()->getContent()); |
这在你的代码“保持着全局状态”或是“依赖于一个拥有某些全局状态的三方类库”时,可以按预期那样工作。这种情况下,你可以隔离你的客户端:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // ...
$harry = static::createClient();
$sally = static::createClient();
$harry->insulate();
$sally->insulate();
$harry->request('POST', '/say/sally/Hello');
$sally->request('GET', '/messages');
$this->assertEquals(Response::HTTP_CREATED, $harry->getResponse()->getStatusCode());
$this->assertRegExp('/Hello/', $sally->getResponse()->getContent()); |
在一个专有而干净的PHP进程中,被隔离的客户端透明地执行其请求,避免了所有副作用。
隔离的客户端运行很慢,你可以在主进程中保留一个,而隔绝其他的。
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。