【发布时间】:2019-05-09 19:42:34
【问题描述】:
我希望客户端发出信号,并在收到该信号时测试我的 socket.io 服务器的行为。我看过this question 和这些博文:
但它们似乎是针对测试客户端,而不是服务器。
这是我正在尝试实现的一个示例:
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();
});
【问题讨论】:
标签: node.js unit-testing sockets socket.io