zhu*_*han 5 unit-testing jestjs filesaver.js
我有一些代码如下:
/* 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);
};
Run Code Online (Sandbox Code Playgroud)
我想用Jest对这两种方法进行单元测试,但我不知道从哪里开始.任何帮助,将不胜感激.
And*_*rle 10
我会FileSaver用间谍嘲笑:
import FileSaver from 'file-saver';
jest.mock('file-saver', ()=>({saveAs: jest.fn()}))
Run Code Online (Sandbox Code Playgroud)
由于你无法比较Blob,我也会嘲笑它:
global.Blob = function (content, options){return ({content, options})}
Run Code Online (Sandbox Code Playgroud)
现在你可以运行你的测试并使用期望这样
createDownload('content', 'filename', 'extension')
expect(FileSaver.saveAs).toHaveBeenCalledWith(
{content:'content', options: { type: 'application/octet-stream' }},
'filename.extension'
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4949 次 |
| 最近记录: |