基于UnknownErrorHandler的handleError方法创建一个spy 方法:

第40行调用的是spied之后的新方法:

因为调用的是Spied之后的wrapper方法,在wrapper方法的执行里有track逻辑,即记录方法调用使用的参数和response:

所有被spy之后的方法调用都记录在jasmine的内部数据结构calls里,它是一个大的数组:

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

Angular jasmine单元测试框架spied method的调用记录数据结构相关推荐

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

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

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

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

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

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

  4. Angular jasmine单元测试框架spec的运行时数据结构

    以我单元测试里这段代码为例: 通过describe函数创建一个suite,即spec的集合: 真正的spec由函数it创建:其中expectable是human readable的字符串描述信息,描述 ...

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

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

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

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

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

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

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

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

  9. Angular jasmine spied Method toHaveBeenCalled的执行原理

    语法:expect(传入一个被spied后的方法).matcher检查 el.focus是spied method: expect函数返回的是一个matcher: 进行toHaveBeenCalled ...

最新文章

  1. 20181023-2 贡献分配
  2. mongodb部署以及数据操作
  3. 用户超5亿,三年投10亿,开发者如何抢滩支付宝小程序蓝海?
  4. Linux网站大杂烩《自己查阅》
  5. 存储过程的版本控制(StoreProcedure,SourceSafe)
  6. python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架
  7. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之LED驱动框架--面向对象、分层设计思想
  8. 挖掘频繁模式、关联和Apriori算法
  9. Python+django网页设计入门(9):自定义反爬虫功能
  10. 第十四章----面向对象equals和toString的重写
  11. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
  12. 剑指offer-面试题37:序列化二叉树及二叉树的基本操作和测试
  13. 金庸笔下人物名字的来历和意义
  14. 何时是使用代码报表的最佳方法,何时采用frx格式
  15. web开发实例教程,CSS盒子模型居中方法
  16. 《八扇屏》贯口全本(共22番)
  17. 龙芯电脑上架设网络学习管理系统Moodle
  18. vi中跳到首行或尾行
  19. cadence安装完怎么打开_Cadence IC使用教程
  20. 一元二次方程求根计算机的代码,一元二次方程求根Java源程序代码.doc

热门文章

  1. python-base64编码与解码
  2. 数据中心两种常用流量模型运用mininet的实现
  3. 你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ?
  4. 移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植
  5. HTML文件类型定义
  6. oracle 数据库,用户管理以及表空间等相关基础操作
  7. ajaxfileupload踩过的坑
  8. poj 1330 LCA (倍增+离线Tarjan)
  9. Hibernate基础学习(二)—Hibernate相关API介绍
  10. stand up meeting 12/8/2015