Я использую Ratchet для веб-сокетов на PHP. Мне удалось написать модульные (phpspec) и приемочные тесты (behat) для веб-сокетов, но я не могу найти способ проверить соединение с сервером веб-сокетов с помощью функционального теста phpunit. Я думаю, это тест, который проверяет, Соединение установлено и работает, это очень важно. Я подумал примерно следующее:
- Создать (храповиковый) клиент в phpunit
- Подключиться к URL-адресу ws (например, client->connect(host, port, ...)
- ping websocket/отправка/получение некоторых сообщений (методы вызова клиента, например client->push(. .)..)
Проблема в том, что я не знаю, какой класс отвечает за установление соединения (создание клиента, который может запрашивать веб-сокет) в Ratchet и как тогда тест будет выглядеть следующим образом. Как я могу создать клиент Ratchet, чтобы иметь возможность подключаться и запрашивать веб-сокет в функциональном тесте phpunit (аналогично, например, веб-клиенту в стандартном функциональном тесте phpunit)
В качестве примера в рамках функционального теста функции я мог бы сделать следующее:
Код: Выделить всё
$client = static::createClient();
$client->request('GET', '/book/3', array(), array(), array('HTTP_X-Requested-With' => 'XMLHttpRequest'));
$response = $client->getResponse();
$this->assertEquals(
440,
$response->getStatusCode()
);
Или, например. создайте аутентифицированного клиента вместо анонимного. Как можно было бы «перевести» этот функциональный тест в веб-сокет с храповым механизмом?
Подробнее здесь:
https://stackoverflow.com/questions/372 ... functional