【发布时间】:2019-09-26 13:03:41
【问题描述】:
我想在 Angular 中为以下功能编写单元测试:
exportToCsv(query: string) {
this.exportToCsvService.exportDataAndGetCsv(query).pipe(
first(),
tap(response => this.fireCsvDownload(response))
).subscribe();
}
函数 exportDataAndGetCsv 进行 http 调用并返回一个字符串。我认为我要编写的测试应该检查 fireCsvDownload 是否被执行。我试过了:
it('should fire fireCsvDownload after exporting data and geting csv ', () => {
component.exportToCsv(query);
fixture.detectChanges();
expect(component.fireCsvDownload).toHaveBeenCalled();
});
但我得到一个错误:Error: <toHaveBeenCalled> : Expected a spy, but got Function. 我该怎么办?我向TestBed 提供exportToCsv 服务,exportDataAndGetCsv 返回of('text').
【问题讨论】:
标签: angular unit-testing testing rxjs observable