All*_*ate 5 javascript jasmine jestjs
我正在为依赖于websocket库的代码编写Jest测试.
websocket库被模拟了.我想发送消息,等待异步操作完成,然后检查响应.
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)
})
Run Code Online (Sandbox Code Playgroud)
不幸的是因为Jest模拟了setTimeout,setTimeout失败了.如果我运行jest.runAllTimers(),超时会立即发生,因此无法接收消息.
知道如何说服jest取消模拟setTimeout或Jasmine的解决方法吗?
小智 6
您可以在测试用例之前添加以下代码.它适用于Jest v14.1.0 -
jest.useRealTimers()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |