何时调用异步函数时进行开玩笑的检查
我正在尝试测试是否调用了异步函数(触发并忘记)。
Content.js
export async function fireAndForgetFunction() {
...
}
export async function getData() {
...
fireAndForgetFunction()
return true;
}
我想测试是否已多次调用fireAndForgetFunction
。
Current test
import * as ContentFetch from '../Content';
const { getData } = ContentFetch;
const { fireAndForgetFunction } = ContentFetch;
it('test',async () => {
const spy = jest.spyOn(ContentFetch, 'fireAndForgetFunction');
await getData();
expect(spy).toHaveBeenCalled();
})
测试结果出错
Expected number of calls: >= 1
Received number of calls: 0
我该如何进行测试?
回答如下:如果您不希望在fireAndForgetFunction
中等待getData()
,我认为是这样,那么在创建间谍时提供fireAndForgetFunction
的模拟实现是最佳选择: