开玩笑地嘲笑一个响应来处理 response.blob()

时间:2021-01-19 20:41:42

标签: javascript typescript jestjs

我正在尝试测试以下代码,该代码通过调用 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();
      
    });

0 个答案:

没有答案