Я хочу, чтобы клиент испускал сигнал и проверял поведение моего сервера socket.io при получении этого сигнала.Я посмотрел на этот вопрос и эти посты в блоге:
шут мокко, чай
но они, кажется,направленный на тестирование клиента, а не сервера.
Вот пример чего-то, что я пытаюсь реализовать:
test('should communicate with waiting for socket.io handshakes', (done) => {
socket_client.emit('example', 'some messages');
setTimeout(() => {
socket_server.on('example', message => {
expect(message).toBe('INCORRECT MESSAGE');
});
done();
}, 50);
Когда я запускаю свой тестовый костюм, это должно дать сбой,но не.
У кого-нибудь есть простой пример тестирования такого поведения?
В настоящее время я использую jest, но с любым фреймворком все в порядке.
Мои настройки и демонтаж теста сервера socket.io указаны ниже:
import * as http from 'http';
import ioBack from 'socket.io';
let socket_client;
let httpServer;
let httpServerAddr;
let socket_server;
beforeAll((done) => {
httpServer = http.createServer().listen();
httpServerAddr = httpServer.address();
socket_server = ioBack(httpServer);
done();
});
afterAll((done) => {
socket_server.close();
httpServer.close();
done();
});