使用socket.io模型进行单元测试Angular 5

时间:2018-07-06 08:00:27

标签: angular typescript unit-testing socket.io jasmine

我正在尝试对使用socket.io导入的mock-socket的服务进行单元测试。我看过类似的问题,例如this,但我无法使其跟随以下对象。

Michael Kors
Michael Kors
Baltimore Michael Kors
Charlotte Michael Kors
Kors Dallas
Michael Texas

有人解决过这个问题吗?

我创建了一个Stackblitz来重新创建方案,如果它使事情更容易理解。

1 个答案:

答案 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,可以查看测试的工作情况。