gpt4 book ai didi

javascript - 禁用 Jest setTimeout 模拟

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:18 27 4
gpt4 key购买 nike

我正在为依赖于 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)
})

不幸的是,因为 Jest 模拟了 setTimeout,所以 setTimeout 失败了。如果我运行 jest.runAllTimers(),超时会立即发生,因此无法获取消息。

知道如何说服 jest 取消模拟 setTimeout 或 Jasmine 解决方法吗?

最佳答案

您可以在测试用例之前添加以下代码。它适用于 Jest v14.1.0 -

  jest.useRealTimers()

关于javascript - 禁用 Jest setTimeout 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38906246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com