我在组件中有Angular
个服务调用,该调用返回可观察到的值,如果还有http错误,它也会在组件中抛出:
private loadData(): void {
this.someService.getdata(filter)
.pipe(
catchError((error: any) => {
this.loadingError$.next(true);
return throwError(error);
})
).subscribe(
(data:any[]) => {
this.records = data;
}
);
}
在测试用例中,我试图使其抛出异常以覆盖catchError
代码部分,我具有以下TC:
it ('should handle error', (done) => {
const err = new Error('fake error');
spyOn(someService, 'getData').and.returnValue(throwError(err));
component.loadingError$.subscribe((error) => {
expect(error).toBe(true);
component.loadingError$.unsubscribe();
done();
});
component.ngOnInit();
});
从loadData
中调用方法ngOnInit
。
我将debugger
放在期望值之后,结果是正确的,但是此TC随机导致其他TC发生故障。
有什么主意吗?