Node.js 使用socket.io(typescript,jest)从事件rxjs进行测试-始终获得未定义的对象
我正在尝试使用socket.io测试FromEvent(rxjs) 在fromEvent中,我总是得到以下数据: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>(
["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();
});