2017-06-21 87 views
0

私は以下のようにいくつかのコードを持っている:Jestを使ってファイルのダウンロードをテストするには?

/* 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); 
}; 

は、私はユニットテストこれらの2つの方法に冗談を使用したいが、私はどこから始めれば分かりません。どんな助けもありがとう。

答えて

1

私はスパイでFileSaverをモックになります。

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

あなたはブロブを比較カントとして私もこれを模擬します:

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' 
) 
+0

ありがとうございました! – zhuhan

関連する問題