这是我需要进行单元测试的Component UI:

可以看到它依赖了另一个Component,其selector为cx-carousel.

因此我在单元测试实现文件里,给它创建一个mock Component:MockCarouselComponent:

@Component({selector: 'cx-carousel',template: `<ng-container *ngFor="let item$ of items"><ng-container*ngTemplateOutlet="template; context: { item: item$ | async }"></ng-container></ng-container>`,
})
class MockCarouselComponent {@Input() title: string;@Input() template: TemplateRef<any>;@Input() items: any[];
}

可以看到,MockComponent和生产版本的Component,属性类型和名称完全一致:

mock的carousel title数据:


生产代码里,carousel template里显示的属性有name和price:

为这两个属性提供的mock数据:

最后生成的mock UI:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

Angular Component UI单元测试的隔离策略相关推荐

  1. SAP 电商云 Spartacus UI Angular Component 动态创建的单步调试

    Jerry 之前的文章SAP 产品 UI 里的容器组件的概念和开发概述介绍过,SAP Spartacus Angular Component,通过我们开发团队自定义的指令 cxComponentWra ...

  2. 深入解析Angular Component的源码示例

    本篇文章主要介绍了剖析Angular Component的源码示例,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. Web Component 定 ...

  3. 使用 Rxjs 解决 Angular Component 之间的通信问题

    本文讨论如果两个 Angular Component 彼此不知道对方的存在,并且也没有共享的父子 Component 时,如何进行通信. 在包括 Angular 在内的许多前端框架中,当我们将应用程序 ...

  4. SAP Spartacus B2B user列表对应的Angular Component

    如下图所示,这个页面点击之后: 显示的Angular UI,在SAP Spartacus里并没有单独的Angular Component来实现: 在userCmsConfig里能发现,SAP Comm ...

  5. Angular Component代码和编译后生成的JavaScript代码

    从 TypeScript 转换为 JavaScript 在这里称为编译. 在这种情况下,compiling 并不意味着创建二进制代码. 对于这种翻译,使用术语 transpilation 而不是 co ...

  6. KDD'20 Workshop 来了!学术竞赛,发表Paper,针对疫情设计隔离策略

    Datawhale 主办方:KDD.宾夕法尼亚州立大学.上海交通大学等 顶级会议KDD,国内外高校联合发起 新型冠状病毒(COVID-19)感染的肺炎疫情牵动着全世界的心.大数据.人工智能.云计算等数 ...

  7. 关于 Angular Component ngOnDestroy 钩子函数的调用时机

    我开发了一个 Angular Component,实现了 ngOnDestroy 钩子方法之后,没有找到其被调用的方法.查看这个StackOverflow链接后,得知无论是我刷新浏览器,还是从当前页面 ...

  8. Angular Component模板里的元素,运行时如何被生成并插入到DOM tree中

    我有一个selector为app-root的Angular Component: 其模板文件里只有一行html代码: 在运行时,这个h1标签是如何插入到整个DOM tree里的呢? 在Angular ...

  9. SAP Spartacus 如何取得某个table字段对应的Angular Component

    以下图为例,负责渲染table column name的Angular Component是什么? 没有名为headerComponent的字段: 于是从config的tableOptions里的he ...

最新文章

  1. 测试用例设计方法_测试用例设计方法——流程分析法(场景法)
  2. 在项目中增加自定义icon图标
  3. 几乎所有的成功都是厚积薄发
  4. C语言入门基础——Brute-Force算法
  5. redis 集群_Redis集群管理
  6. Service的使用
  7. 使用VNC完毕远程调用图形化
  8. AD查找相似对象使用进阶
  9. 21天学通c语言错误,为《21天学通C语言》(第7版)(Sams Teach Yourself C in 21 Days)正名...
  10. 区块链在版权保护方面的探索与实践
  11. 通过VBA锁定单元格的值
  12. oracle 排除节假日,ORACLE 计算节假日
  13. 免费服务器领取步骤(详细)
  14. 树型结构总结:二叉查找树、堆、平衡树、2-3查找树、红黑树、B树、B+树
  15. aria2 linux一键安装,Aria2一键安装及管理脚本,搭建AriaNg前端
  16. 设置使用 CUDA/显卡 的编号
  17. matlab mafdr,matlab FDR校正
  18. c语言游戏(C语言游戏装备)
  19. PTA 7-114 用if-else语句编程百分制成绩转换为五分制成绩
  20. proxmox ve 7.2 AMD显卡直通 网卡驱动 调度器

热门文章

  1. Linux通过使用Sambaserver示例
  2. 4 交换机-fanout(订阅发布模式)
  3. springboot scheduled多线程
  4. formidable处理提交的表单或文件的简单介绍
  5. Linux gcc/g++链接编译顺序详解
  6. v-show 与 v-if区别
  7. 关于checkbox
  8. CSS实现三列图片等宽等间距布局
  9. iOS9 : Storyboard References
  10. 学java教程之String类