gpt4 book ai didi

unit-testing - 如何使用Jest测试文件下载?

转载 作者:行者123 更新时间:2023-12-03 15:58:50 24 4
gpt4 key购买 nike

我有一些如下代码:

/* global document */
/* global window */
/* global Blob */

import FileSaver from 'file-saver';

export const createDownloadFromBlob = (blob, filename, extension) => {
FileSaver.saveAs(blob, `${filename}.${extension}`);
};

export const createDownload = (content, filename, extension) => {
createDownloadFromBlob(new Blob([content], { type: 'application/octet-stream' }), filename, extension);
};

我想使用Jest对这两种方法进行单元测试,但是我不知道从哪里开始。任何帮助,将不胜感激。

最佳答案

我会用 spy 模拟出FileSaver:

import FileSaver from 'file-saver';
jest.mock('file-saver', ()=>({saveAs: jest.fn()}))

正如您无法比较Blob一样,我也会对此进行 mock :
global.Blob = function (content, options){return  ({content, options})}

现在您可以运行测试并使用期望值,例如
createDownload('content', 'filename', 'extension')
expect(FileSaver.saveAs).toHaveBeenCalledWith(
{content:'content', options: { type: 'application/octet-stream' }},
'filename.extension'
)

关于unit-testing - 如何使用Jest测试文件下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com