首页 > 解决方案 > 开玩笑 - 模拟超时后返回的 Promise

问题描述

我有这个模块

function waitTimeout(ms: number) {
 return new Promise((resolve) => setTimeout(() => resolve(true), ms));
}


async function verifyUserRecord(userId) {

 await waitTimeout(10000);

 await <some other method call>
 /////////////// more logic /////////////
}

我如何使用 jest 来模拟对 的调用waitTimeout?意思是模拟setTimeoutPromise.resolve

我尝试使用:

jest.useFakeTimers();

jest.runAllTimers();

jest.runAllTicks();

jest.advanceTimersByTime(60000);

jest.runOnlyPendingTimers();

但他们都没有工作,我不断得到:

Async callback was not invoked within the 20000 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.Error:

请指教。

标签: javascriptunit-testingjestjs

解决方案


推荐阅读