react javascript jasmine jestjs

javascript - react - jest vs mocha



Deshabilitar Jest setTimeout simulacro (1)

Puede agregar el siguiente código antes de los casos de prueba. Funciona para mí en Jest v14.1.0 -

jest.useRealTimers()

Estoy escribiendo una prueba de Jest para el código que depende de una biblioteca websocket.

La biblioteca websocket es burlada. Deseo enviar un mensaje, esperar a que se completen las acciones de sincronización y verificar la respuesta.

it(''sends a message and gets a response'', () => { processor(ws).sendMessage() // do a bunch of async stuff, call websocket.sendMessage() setTimeout(() => { expect(ws.getResponse()).toEqual(''all done'') }, 100) })

Desafortunadamente porque Jest se burla de SetTimeout, setTimeout falla. Si ejecuto jest.runAllTimers() , el tiempo de espera se produce instantáneamente, por lo que no puede recoger el mensaje.

¿Alguna idea de cómo convencer a broma de que se pueda desbloquear setTimeout o una solución provisional de Jasmine?