当使用Jest测试利用回调的异步代码时,可以放入一个done参数,然后在测试内部调用该参数。这使测试知道在完成测试之前要等到done()函数被调用。例如,在运行包含done()函数的回调之前,该代码将不会完成。
test('the data is peanut butter', done => {
function callback(data) {
expect(data).toBe('peanut butter');
done();
}
fetchData(callback);
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,Jest实际上如何知道何时需要等待该done()调用?由于它存在的唯一其他地方是测试运行的函数的参数,Jest是否可以检查该函数中的参数?如果是这样,它是如何做到的?