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 SSR 模式下的客户端应用,不会发起 product 请求
我们如果通过 CSR 即 Client Side Render 的方式启动 SAP Spartacus UI,可以在 Chrome 开发者工具里观测到 Product Carousel 对应的产品主数 ...
- SAP 电商云 Spartacus UI SSR 里 engine 和 engine instance 的区别
传入 originalEngine 到装饰器 decorateExpressEngine 里: 传出的是一个 engine 函数,engine 函数包括了 original Engine 这个函数,然 ...
- SAP 电商云 Spartacus UI 的单元测试和端到端测试,以及 CI/CD 相关话题
单元测试 在项目根目录的 package.json 下面,定义了测试相关的 script: 可以直接 npm run test:libs, 启动所有库的单元测试: 也可以手动执行单个库的单元测试,例如 ...
- 关于 SAP 电商云 Spartacus UI SSR 的 state transfer 问题
我使用基于版本 3.4.5(某客户正在使用)的 Schematics 创建了一个店面,并在 SSR 模式下运行它. 我在浏览器中访问 http://localhost:4000/. 通过 Chrome ...
- SAP 电商云 Spartacus UI 产品搜索结果的设计明细
我们使用如下 url 访问 SAP 电商云 Spartacus UI 产品搜索页面: http://localhost:4000/electronics-spa/en/USD/search/sony ...
- Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例
关于 Mobile First 的概念,请查看我这篇文章:什么是前端开发中的 mobile first 策略. 下图是 SAP 电商云 Spartacus UI 的搜索结果页面: 其布局设计:temp ...
- SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数
为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...
- SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改
我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...
- 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合
先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...
最新文章
- 如何衡量系统内存健康程度: memdelay简介
- 简述configure、pkg-config、pkg_config_path三者的关系
- tensorflow编程入门笔记之一
- PSAM卡---中国人民银行PSAM卡管理规范.doc
- C语言创建二叉树的方法(全)
- OSI网络七层模型简明教程
- 搜索推荐炼丹笔记:酒店搜索位置偏差的边际重要性
- python中输入17=x会引起错误_python新手常犯的17个错误
- mysql 5.5 压力测试,mysql 压力测试
- python下载图片到文件夹_请教大佬:下载图片,运行后文件夹创立了,但里边没有图,为什么...
- 程序员写代码的致命缺点
- Oracle 9i安装时没有找到OCS4J.properties 解决办法
- 2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)
- 中国电信与阿里巴巴签署全面战略合作协议
- Unity 一种更为简洁明了的环绕相机方案
- 爱奇艺动画屋 android,爱奇艺奇巴布(com.qiyi.video.child) - 11.5.5 - 应用 - 酷安
- html设置首缩选进两字符,首行缩进2字符怎么设置 css
- 微信小程序设置字体无效_微信小程序字体设置
- 电话销售潜在客户从哪里找 电销行业还值得深入研究吗?
- 地理加权回归 | 模型如何应用于新数据的预测?