在Angular 5中测试FileSaver

Sre*_*ddy 2 mocking spy karma-jasmine angular

我已经在angular 5应用程序中导入了文件保存程序,在执行测试用例时出现以下错误:

TypeError: FileSaver.saveAs is not a function

Spec.ts:
import FileSaver from 'file-saver';

.ts
import FileSaver from 'file-saver';
FileSaver.saveAs(blob, filename);
Run Code Online (Sandbox Code Playgroud)

如何在测试案例中模拟filesaver。

Cra*_*aig 7

This works in Angular 7, so I'm guessing it will work in NG5. The first thing is to import FileSaver using the 'as' syntax in both the component and the spec:

import * as FileSaver from 'file-saver';
Run Code Online (Sandbox Code Playgroud)

Then in the spec beforeEach:

spyOn(FileSaver, 'saveAs').and.stub();
Run Code Online (Sandbox Code Playgroud)

  • 这似乎(突然)停止为我工作作为存根 saveAs 方法的机制。还有其他人观察到类似的事情吗? (2认同)