Component.ts
// Component containing function
Public myData(){
this.myService.getData()
.pipe(
take(1),
catchError((err: any) => {
this.myRows = [];
return throwError(err);
}),
finalize(() => {
console.log('In Finally');
})
)
.subscribe((rows) => {
this.myRows = rows;
// Do something
});
}
myService.ts
// Service Call
public getData(): Observable < customer[] > {
const url = 'some url';
return this.http.get(url).pipe(
map(this.checkForError),
catchError((err: HttpErrorResponse) => {
return throwError(err);
}),
map(this.myJson),
share()
);
}
spec.ts
// Test Case
it('should test', () => {
let test = spyOn(myService, 'getData');
component.myData();
expect(test).toHaveBeenCalled();
});
无法解决此错误。无法找到一种编写服务调用测试用例的简便方法。我们如何解决管道错误?
尝试一下:
您是否尝试过这样的异步功能:
错误似乎在this.myService.getData().pipe(...
上因为在您的测试中,您监视“ getData”,但没有返回任何值,特别是没有返回任何Observable值。