【发布时间】:2016-05-17 19:42:51
【问题描述】:
我在 PHP 中将 Ratchet 用于 websockets。我能够为 websockets 编写单元(phpspec)和验收测试(behat),但是我找不到如何使用功能性 phpunit 测试来测试与 websocket 服务器的连接的方法。我认为是一个测试,它检查是否连接已启动并正在运行,这将非常重要。我想到了类似以下的内容:
- 在 phpunit 中创建一个(棘轮)客户端
- 连接到ws url(例如client->connect(host, port, ...)
- ping websocket / 发送/接收一些消息(调用客户端的方法,例如client->push(..)..)
问题是,我不知道哪个类负责在 Ratchet 中建立连接(创建可以请求 websocket 的客户端)以及测试的样子。如何创建 Ratchet 客户端以便能够在 phpunit 功能测试中连接和请求 websocket? (类似于例如标准 phpunit 功能测试中的 webclient)
例如,在功能测试中,我可以执行以下操作:
$client = static::createClient();
$client->request('GET', '/book/3', array(), array(), array('HTTP_X-Requested-With' => 'XMLHttpRequest'));
$response = $client->getResponse();
$this->assertEquals(
440,
$response->getStatusCode()
);
或者例如创建经过身份验证的客户端而不是匿名客户端。怎么可能,将这个功能测试“翻译”成棘轮 websocket 测试?
【问题讨论】:
-
所以你对这个问题投了反对票,但正如我所见,当我用谷歌搜索 websocket 功能测试时,这是显示在结果中的极少数页面之一。我会澄清一下我的问题。
标签: php testing websocket phpunit ratchet