如何在我的角度测试中覆盖 catchError?
this.service.method().pipe(
tap(ret=>{
console.log('my return', ret);
}),
catchError(error=>{
console.log('error occured');
return throwError(error);
})
).subscribe();
在我的测试中,我模拟了服务和方法。
let serviceMock = jasmine.createSpyObj('Service',{
method: of({message: 'success'})
})
tap 内的代码被覆盖,但不在 catchError 中。
答案 0 :(得分:2)
您可以模拟如下错误:
let isError = false;
let serviceMock = jasmine.createSpyObj('Service',{
method: isError ? throwError('') : of({message: 'success'})
})
通过这种方式,您可以将测试用例中的 isError
设置为成功或错误。