Timer Jest简单异步等待,计时器不工作
我正在尝试使用setTimeout进行一个简单的异步/等待测试,但在运行它时什么也没有发生:Timer Jest简单异步等待,计时器不工作,timer,async-await,jestjs,settimeout,Timer,Async Await,Jestjs,Settimeout,我正在尝试使用setTimeout进行一个简单的异步/等待测试,但在运行它时什么也没有发生: const testing = async () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve('result'); }, 500); }); } jest.useFakeTimers() it('tests
const testing = async () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('result');
}, 500);
});
}
jest.useFakeTimers()
it('tests async await', async () => {
const r = await testing();
expect(r).toBe('result');
jest.runAllTimers();
});
我可以像在《茉莉花》中那样使用真实的setTimeout,但这似乎是开玩笑的,你必须使用假的setTimeout。所以我确实包括了jest.useFakeTimers()
和jest.runAllTimers()
,但这并没有解决问题
测试被卡住了,永远不会完成。知道问题出在哪里吗?试试下面的方法:
it('tests async await', async () => {
jest.useFakeTimers();
testing = async () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('result');
}, 500);
});
};
const asyncResult = testing();
jest.runAllTimers();
const r = await asyncResult;
expect(r).toBe('result');
});
请尝试以下操作:
it('tests async await', async () => {
jest.useFakeTimers();
testing = async () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('result');
}, 500);
});
};
const asyncResult = testing();
jest.runAllTimers();
const r = await asyncResult;
expect(r).toBe('result');
});