我正在尝试测试以下代码,该代码通过调用 response.blob()
进行 api 调用以从响应下载文件 blob。但是我不确定如何模拟这个和响应,以便我可以测试成功的响应并验证 downloadFile()
函数是否被调用。
我不确定的关键部分是如何将函数的返回值模拟为稍后在 (.blob()) 上调用方法的对象
要测试的代码:
......
const response = await apiCall<Response>(dispatch, request, false);
try {
const file = await response.blob();
const fileUrl = window.URL.createObjectURL(file);
downloadFile(fileUrl, 'filename.csv');
} catch {
throw response;
}
测试
describe('downloadsAFile', () => {
it('downloads successfully', async () => {
global.URL.createObjectURL = jest.fn();
expect(downloadFile).toBeCalled();
});