SAP 电商云 Spartacus UI SSR 单元测试里的 callFake

Posted JerryWangSAP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAP 电商云 Spartacus UI SSR 单元测试里的 callFake相关的知识,希望对你有一定的参考价值。

callFake 的接口定义可以在 jasmine.js 里找到:

SpyStrategy.callFake, 返回 Spy 对象。

spy1 即 originalEngine,二者指向同一个对象实例:

只要 spy1 即 originalEngine 这个函数被调用,则返回 callFake 指定的 mock 版本的实现:return originalEngineInstance,后者也是个 mock 对象。

engine 本身是 Spartacus SSR 标准的实现,被 decorator 之后返回的新的函数,可以执行:

该函数通过闭包的方式,保存了输入参数 ngExpressEngine 的引用,而后者已经被 mock 过了:

当第50行调用这个 engine 函数时,

执行的 ngExpressEngine 即是 mock 过的函数 spy1:

spy1 一旦被调用,就会返回 mock 版本的函数,即返回 originalEngineInstance 实例。

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

以上是关于SAP 电商云 Spartacus UI SSR 单元测试里的 callFake的主要内容,如果未能解决你的问题,请参考以下文章

#私藏项目实操分享# SAP 电商云 Spartacus UI 的交货模式 Delivery Mode 设计

#私藏项目实操分享# RxJs 操作符 withLatestFrom 在 SAP 电商云 Spartacus UI 中的应用

#私藏项目实操分享# SAP 电商云 Spartacus UI 的 checkout 场景中的串行请求设计分析

关于 SAP Spartacus CSR fallback 之后,是否仍然会继续进行 SSR 的处理

SAP Spartacus RouterModule.forRoot() called twice 的错误消息

SAP Commerce Cloud 新一代 UI Spartacus 和 Customer Data cloud 的集成