gpt4 book ai didi

javascript - 开 Jest 如何测试 setTimeout 中抛出的错误

转载 作者:行者123 更新时间:2023-11-30 19:05:39 24 4
gpt4 key购买 nike

我的代码是这样的:

const myFunc =() =>{
setTimeout(()=>throw new Error('err within setTimeout'),500);
}

如何在 Jest 框架中测试抛出错误?

最佳答案

我看到的唯一方法是模拟 setTimeout 本身以使其同步运行。 jest.useFakeTimers() + jest.runAllTimers() 可以为您做到这一点:

jest.useFakeTimers();

it("throws", () => {
expect.assertions(1); // don't miss that to ensure exception has been thrown!
myFunc();
try {
jest.runAllTimers();
} catch(e) {
expect(e.message).toEqual('err within setTimeout');
}
});

关于javascript - 开 Jest 如何测试 setTimeout 中抛出的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59025414/

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