【发布时间】:2018-10-14 08:51:21
【问题描述】:
我的拦截器是:
@Injectable()
export class ErrorInterceptor implements HttpInterceptor {
constructor(private _ngbModal: NgbModal) {}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request)
.catch((err) => {
let componentInstance = this._ngbModal.open(ErrormodalComponent, {size: 'sm', backdrop: 'static' }).componentInstance
switch(err.status) {
case 401:
componentInstance["message"] = "User session lost, please logout and log back in."
break;
case 404:
componentInstance["message"] = "API Route Not found"
break;
default:
componentInstance["message"] = "API Currently Unavailable. Please try again."
break;
}
return Observable.throw(err);
})
}
}
我想编写一个测试来检查是否打开了基于状态的适当消息的模式。
谢谢
【问题讨论】:
-
我会嘲笑 _ngbModal 并监视 open 方法并返回一个组件实例并检查 componentInstance 上的消息键。
-
@AbhishekPrakash 你能把它写成答案,我可以接受吗?
标签: angular unit-testing angular-http-interceptors