美文网首页SAP
SAP Spartacus里的HTTPErrorIntercep

SAP Spartacus里的HTTPErrorIntercep

作者: 华山令狐冲 | 来源:发表于2021-03-01 10:33 被阅读0次

测试UnKnownErrorHandler是否能正确 处理UnknownError这个状态:

这个handler是import进来的:

调用经过TestBed.inject注入后的http:

执行subscribe:

UnknownErrorHandler此时才被惰性加载:

这个fake的HTTP请求确实会触发我们自定义的http intercept:

下面这行代码的语义是,确保有一个HTTP GET请求被发送:


调用testModule的injector根据UnknownErrorHandler这个token获取注入值:

调用_r3Injector.get:

this.hydrate:

直接用record.value返回:

ErrorHandler是Angular core的概念:


使用Spyon,给UnknownErrorHandler的handlerError方法上安装一个spy. 这样,当其被调用时,我们可以用下图第122行的toHaveBennCalled方法感知:

调用HTTP请求对象的mock对象的flush方法,传送一个HTTP response回来。

这个flush操作首先会触发UnknownErrorHandler的hasMatch方法:

会触发Angular request.ts里的observer.error调用:

会触发第109行的subscribe回调:


更多Jerry的原创文章,尽在:"汪子熙":


相关文章

网友评论

    本文标题:SAP Spartacus里的HTTPErrorIntercep

    本文链接:https://www.haomeiwen.com/subject/rekziktx.html