Angular jasmine单元测试框架spied method的调用记录数据结构
基于UnknownErrorHandler的handleError方法创建一个spy 方法:
第40行调用的是spied之后的新方法:
因为调用的是Spied之后的wrapper方法,在wrapper方法的执行里有track逻辑,即记录方法调用使用的参数和response:
所有被spy之后的方法调用都记录在jasmine的内部数据结构calls里,它是一个大的数组:
更多Jerry的原创文章,尽在:“汪子熙”:
Angular jasmine单元测试框架spied method的调用记录数据结构相关推荐
- Angular jasmine单元测试框架里expect.toHaveBeenCalled的工作原理
第120行给handler.handleError方法注入spy后,第121行代码flush HTTP Mock request会触发handler.handleError(的wrap实现)调用.第1 ...
- Angular jasmine单元测试框架里使用it函数定义single spec
it函数接收两个参数,描述信息和包含了待测试的单元测试代码的函数: /*** Define a single spec. A spec should contain one or more {@lin ...
- Angular jasmine单元测试框架里describe的实现原理
源代码:describe函数传入的两个参数:描述信息和箭头函数: 从注释能看出,describe函数的语义:Create a group of specs (often called a suite) ...
- Angular jasmine单元测试框架spec的运行时数据结构
以我单元测试里这段代码为例: 通过describe函数创建一个suite,即spec的集合: 真正的spec由函数it创建:其中expectable是human readable的字符串描述信息,描述 ...
- Angular jasmine单元测试框架里spyOn的创建原理
准备针对handler的handleError方法创建spy: 保存原始方法的信息到变量originalMetho里: 利用spyFactory.createSpy创建spied版本的新方法: wra ...
- Angular jasmine单元测试框架fixture.detectChanges的实现原理
源代码: fixture的类型是component-fixture,里面会调用_tick方法: 具体执行的detectChange逻辑,取决于Change Detect reference: Root ...
- Angular jasmine单元测试框架TestBed.createComponent的实现原理
单元测试代码里的createComponent,是通过TestBedRender实现的: TestBedRenderer3: 获得注入的TestComponentRenderer: const res ...
- Angular jasmine单元测试框架TestBed.inject的执行原理
单步调试这段代码: TestBed用于单元测试代码里创建Component和service实例. injectionToken即传入TestBed.inject的function: 还是delegat ...
- Angular jasmine spied Method toHaveBeenCalled的执行原理
语法:expect(传入一个被spied后的方法).matcher检查 el.focus是spied method: expect函数返回的是一个matcher: 进行toHaveBeenCalled ...
最新文章
- 20181023-2 贡献分配
- mongodb部署以及数据操作
- 用户超5亿,三年投10亿,开发者如何抢滩支付宝小程序蓝海?
- Linux网站大杂烩《自己查阅》
- 存储过程的版本控制(StoreProcedure,SourceSafe)
- python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架
- 【嵌入式Linux】嵌入式Linux驱动开发基础知识之LED驱动框架--面向对象、分层设计思想
- 挖掘频繁模式、关联和Apriori算法
- Python+django网页设计入门(9):自定义反爬虫功能
- 第十四章----面向对象equals和toString的重写
- ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
- 剑指offer-面试题37:序列化二叉树及二叉树的基本操作和测试
- 金庸笔下人物名字的来历和意义
- 何时是使用代码报表的最佳方法,何时采用frx格式
- web开发实例教程,CSS盒子模型居中方法
- 《八扇屏》贯口全本(共22番)
- 龙芯电脑上架设网络学习管理系统Moodle
- vi中跳到首行或尾行
- cadence安装完怎么打开_Cadence IC使用教程
- 一元二次方程求根计算机的代码,一元二次方程求根Java源程序代码.doc
热门文章
- python-base64编码与解码
- 数据中心两种常用流量模型运用mininet的实现
- 你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ?
- 移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植
- HTML文件类型定义
- oracle 数据库,用户管理以及表空间等相关基础操作
- ajaxfileupload踩过的坑
- poj 1330 LCA (倍增+离线Tarjan)
- Hibernate基础学习(二)—Hibernate相关API介绍
- stand up meeting 12/8/2015