我正在尝试对使用socket.io导入的mock-socket的服务进行单元测试。我看过类似的问题,例如this,但我无法使其跟随以下对象。
Michael Kors
Michael Kors
Baltimore Michael Kors
Charlotte Michael Kors
Kors Dallas
Michael Texas
有人解决过这个问题吗?
我创建了一个Stackblitz来重新创建方案,如果它使事情更容易理解。
答案 0 :(得分:4)
我通过更改以下行解决了我的问题:
it('tests simple connection and messaging with mock-socket setup', async(done: DoneFn) => {
(window as any).io = SocketIO;
// setting up client
backendService.socket = io(window.location.host);
backendService.socket.on('server-message', (message) => {
console.log(message)
expect(message.message).toEqual('test message 1');
mockServer.stop();
done();
});
});
});
问题本身是由于您需要在完成asynchronous操作之后通知Jasmine。
这是工作stackblitz,可以查看测试的工作情况。