Node.js 使用socket.io(typescript,jest)从事件rxjs进行测试-始终获得未定义的对象

Node.js 使用socket.io(typescript,jest)从事件rxjs进行测试-始终获得未定义的对象,node.js,typescript,testing,socket.io,jestjs,Node.js,Typescript,Testing,Socket.io,Jestjs,我正在尝试使用socket.io测试FromEvent(rxjs) 在fromEvent中,我总是得到以下数据: ["some message","undefined"] 无论我做了什么,它总是发送未定义的消息 当我使用fromEvent安装的服务器时,它工作得很好 我的FromEvent代码: onStudent(): Observable<Student> { return fromEvent<Student>(

我正在尝试使用socket.io测试FromEvent(rxjs)

在fromEvent中,我总是得到以下数据:

["some message","undefined"]
无论我做了什么,它总是发送未定义的消息

当我使用fromEvent安装的服务器时,它工作得很好

我的FromEvent代码:



 onStudent(): Observable<Student> {
    return fromEvent<Student>(this.server, 'students').pipe(map(student => someFunc(student));
  }

someFunc(student:Student){
 here i got the undefined wired message from student var
["some message","undefined"]
}
  onTest(): Observable<any> {
    return fromEvent(this.server, 'test1')
  }
  import SocketMock from 'socket.io-mock';

  it.only('should emit and recivie', async done => {
      const studentObsService = //...getStudentService
      const socket = new SocketMock();
      socketMock.getSocket = jest.fn(() => Promise.resolve(socket));

      await studentObsService.init();
      let count = 0;
      studentObsService.onStudent().subscribe((value: Student) => {
        
          console.log(value)  // should compare the value with what we sent
        expect(true).toEqual(true);
      });

      await socket.socketClient.emit('students', 'some message');
      await new Promise(resolve => setTimeout(resolve, 1000));
      done();
    });