看一个具体的例子:

DeliveryModeComponent,依赖到的一个服务为 CheckoutDeliveryFacade,其实现类为 CheckoutDeliveryService.

因此,在我们的单元测试里,设计一个 MockCheckoutDeliveryService:

其方法 isSetDeliveryModeBusy, 来自 isSetDeliveryModeBusy$ 这个 behaviorSubject:

这样,我们只需要控制 isSetDeliveryModeBusy$ 这个 BehaviorSubject 的值,就能够随意调整 CheckoutDeliveryService.isSetDeliveryModeBusy 的返回值了。

比如这样:

isSetDeliveryModeBusy$.next(false);

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

SAP 电商云 Spartacus UI 单元测试的依赖隔离设置举例相关推荐

  1. SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改

    我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...

  2. SAP 电商云 Spartacus UI DeliveryComponent 的依赖设计

    该 Component 具有5个依赖: 为了修复 bug,我需要引入 checkout service 和 cart service. 如果直接在该构造函数里注入,这实际上算是修改了 construc ...

  3. SAP 电商云 Spartacus UI 产品搜索结果的设计明细

    我们使用如下 url 访问 SAP 电商云 Spartacus UI 产品搜索页面: http://localhost:4000/electronics-spa/en/USD/search/sony ...

  4. Mobile first 设计思路在 SAP 电商云 Spartacus UI 中的设计体现一例

    关于 Mobile First 的概念,请查看我这篇文章:什么是前端开发中的 mobile first 策略. 下图是 SAP 电商云 Spartacus UI 的搜索结果页面: 其布局设计:temp ...

  5. SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数

    为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...

  6. 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合

    先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...

  7. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子

    如何理解 SAP 电商云 Spartacus UI 中的 proxy facade? Jerry 这篇文章什么是 SAP 电商云 Spartacus UI 的 proxy façade提供了理论上的解 ...

  8. SAP 电商云 Spartacus UI Quick Order 主页的实现

    存货单位(英語:stock keeping unit,SKU/ˌɛsˌkeɪˈjuː/),也翻译为库存单元,是一個會計學名詞,定义为库存管理中的最小可用单元,例如纺织品中一个SKU通常表示规格.颜色. ...

  9. SAP 电商云 Spartacus UI 从 CMS 取回 slots 和 component 之后的处理

    从前一篇文章SAP 电商云 Spartacus UI 的双重 layout 配置层设计 我们得知,Spartacus 层面的 layout-config.ts 可以控制 page template 应 ...

最新文章

  1. python调用zabbix api接口实时展示数据
  2. 智能机器人及其应用ppt课件_智能工业机器人应用再获成功!
  3. [导入]相片: 23853741.jpg
  4. php js 验证码,js实现验证码的方法
  5. 小米5安卓使用微信X5 Blink内核调试
  6. javamail 解码 base64 html格式邮件_python使用QQ邮箱实现自动发送邮件
  7. c语言第六次上机作业,C语言第五次上机作业参考答案
  8. java返回datatable_(转)在JAVA实现DataTable对象(三)——DataTable对象实现
  9. 读书笔记 - js高级程序设计 - 第四章 变量 作用域 和 内存问题
  10. python课程设计实验报告-Python语言课程设计报告格式.doc
  11. XML/HTML/CSS/JS之间的区别和联系
  12. 微博缓存视频导出自行解决方案
  13. Python生成彩色字符画
  14. Python更新失败:SSL错误——Conda/Python
  15. android打开位置服务,Android - 位置定位(Location)服务(Service)类的基本操作
  16. rk3288 Android 8,RK3288W Android8.1开发日志(一)
  17. 一个app从设想到上线运营的完整过程
  18. JAVA常见的命名规则:见名知意
  19. how to upload directory to github(怎么把文件目录上传到github)
  20. kubectl命令行管理工具

热门文章

  1. Hibernate连接mysql数据库并自动创建表
  2. Win7有多条隧道适配器(isatap、teredo、6to4)的原因及关闭方法
  3. 转: java web demo的示例
  4. C#操作Excel数据增删改查(转)
  5. Robot Framework 使用1-环境配置及简单网站兼容性测试(转)
  6. mvn tutorial
  7. Lync Server外部访问系列PART6:启用外部访问
  8. DHCP服务和NIS服务
  9. 戴尔为例 浅谈电子商务时代客户关系管理
  10. WGho_Setup 雨林木风 一键备份