【发布时间】:2020-05-10 02:05:12
【问题描述】:
我一直在寻找测试 Angular 拦截器代码以进行错误处理的方法,但我似乎无法弄清楚如何。
@Injectable()
export class ErrorInterceptor implements HttpInterceptor {
constructor(private authenticationService: AuthenticationService, private router: Router) { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(
catchError(err => {
let errorMessage = '';
if(err instanceof HttpErrorResponse) { // server side error
switch (err.status) {
case 401:
// auto logout if 401 response returned from api
errorMessage = "Ongeldige inloggegevens"
break;
case 500: //server error
errorMessage = `Error Status: ${err.status}\nMessage: ${err.message}`;
this.router.navigate([`/code500`]);
break;
}
return throwError(errorMessage);
}
}
))
}
}
【问题讨论】:
标签: angular unit-testing angular-http-interceptors