以我单元测试里这段代码为例:

通过describe函数创建一个suite,即spec的集合:

真正的spec由函数it创建:其中expectable是human readable的字符串描述信息,描述该spec具体要测试哪些东西,assertion就是具体的包含单元测试的代码。

spec内部的expect方法调用:调用env.expect:

使用spec的expectationFactory创建一个expectation:

spec变量里包含了执行通过的expectation和执行失败的expectation:

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

Angular jasmine单元测试框架spec的运行时数据结构相关推荐

  1. Angular jasmine单元测试框架里使用it函数定义single spec

    it函数接收两个参数,描述信息和包含了待测试的单元测试代码的函数: /*** Define a single spec. A spec should contain one or more {@lin ...

  2. Angular jasmine单元测试框架里describe的实现原理

    源代码:describe函数传入的两个参数:描述信息和箭头函数: 从注释能看出,describe函数的语义:Create a group of specs (often called a suite) ...

  3. Angular jasmine单元测试框架TestBed.createComponent的实现原理

    单元测试代码里的createComponent,是通过TestBedRender实现的: TestBedRenderer3: 获得注入的TestComponentRenderer: const res ...

  4. Angular jasmine单元测试框架TestBed.inject的执行原理

    单步调试这段代码: TestBed用于单元测试代码里创建Component和service实例. injectionToken即传入TestBed.inject的function: 还是delegat ...

  5. Angular jasmine单元测试框架spied method的调用记录数据结构

    基于UnknownErrorHandler的handleError方法创建一个spy 方法: 第40行调用的是spied之后的新方法: 因为调用的是Spied之后的wrapper方法,在wrapper ...

  6. Angular jasmine单元测试框架里expect.toHaveBeenCalled的工作原理

    第120行给handler.handleError方法注入spy后,第121行代码flush HTTP Mock request会触发handler.handleError(的wrap实现)调用.第1 ...

  7. Angular jasmine单元测试框架fixture.detectChanges的实现原理

    源代码: fixture的类型是component-fixture,里面会调用_tick方法: 具体执行的detectChange逻辑,取决于Change Detect reference: Root ...

  8. Angular jasmine单元测试框架里spyOn的创建原理

    准备针对handler的handleError方法创建spy: 保存原始方法的信息到变量originalMetho里: 利用spyFactory.createSpy创建spied版本的新方法: wra ...

  9. C专家编程 第6章 运动的诗章:运行时数据结构 6.1 a.out及其传说

    运动的诗章:运行时数据结构      编程语言理论的经典对立之一就是代码和数据的区别.有些语言(如Lisp)把二者视为一体.其他语言(如C语言)通常维持两者的区别.Internet蠕虫非常难以被人们所 ...

最新文章

  1. UITableViewCell有关处理touch事件的问题
  2. 如何给docker容器分配内存和cpu
  3. leetcode算法题--数字序列中某一位的数字
  4. Linux 新api eventfd(转)
  5. 001 FSG 1.33变形壳
  6. Winform中封装DevExpress的MarqueeProgressBarComtrol实现弹窗式进度条效果
  7. svd奇异值分解_NCL专辑 | 奇异值分解(SVD)
  8. jOOQ,H2和Maven入门
  9. c语言程序设计课件数组,数组(C语言程序设计)课件
  10. 【转】用Microsoft Ajax Minifier帮你的Javascript瘦身
  11. HDU 5090 Game with Pearls (贪心)
  12. 再看结构体对齐与小端联合问题
  13. 转:HTTP ---HTTP头的编码问题(Content-Disposition)
  14. linux镜像下载和vmware虚拟主机部署
  15. CPU和内存的电路设计09-计数器的内部电路实现
  16. 关于智能运维(AIOps)的学与思
  17. docker-compose启动hyperf项目
  18. 28岁程序员从字节退休:IT是改命的唯一出路吗?
  19. 老五苏-34:慧眼独具 比起“大哥”苏-27,苏-34的个子要高大一些。
  20. 天猫店群比淘宝店群好做吗?同是无货源差距为何那么大,个人分享

热门文章

  1. Apache OpenOffice 下载量突破一亿次
  2. C语言 · 黑色星期五
  3. 【mac开发.NET】No installed provisioning profiles match the installed iOS signing identities
  4. 【POI word】使用POI实现对Word的读取以及生成
  5. OpenTLD相关资料
  6. 自制Win7安装U盘!
  7. 图片自适应css代码(转)
  8. Scott Mitchell 的ASP.NET 2.0数据教程之三十八:: 处理BLL和DAL的异常
  9. InterlliJ Debug启动:method breakpoints may dramatically show down debugging
  10. 关于字符编码,你所需要知道的