使用setup函数替代beforeEach函数进行Angular单元测试
具有依赖关系的Service源代码:
import { Injectable } from '@angular/core';@Injectable()
export class MasterService {constructor(private valueService: ValueService) { }getValue() { return this.valueService.getValue(); }
}export class ValueService {getValue() { return 'Jerry'; }
}
单元测试代码:
describe('MasterService using setup Instead of beforeEach', () => {it('#getValue should return stubbed value from a spy', () => {const { masterService, stubValue, valueServiceSpy } = setup();expect(masterService.getValue()).toBe(stubValue, 'service returned stub value');expect(valueServiceSpy.getValue.calls.count()).toBe(1, 'spy method was called once');expect(valueServiceSpy.getValue.calls.mostRecent().returnValue).toBe(stubValue);});
});
测试结果:
使用setup函数替代beforeEach函数进行Angular单元测试相关推荐
- matlab中randint函数替代randi函数
文章目录 问题描述 randint函数 randi函数 问题描述 看到matlab源码中用到randint函数,但是matlabr2019a中没有randint函数,所以寻找替代函数,得到替代函数ra ...
- range函数python3_Python3如何使用range函数替代xrange函数
在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的.比如: for 循环或者是列表/集合/字典推导式.这个表现十分像生成器(比如."惰性求值").但是这个 ...
- SQL函数类型及函数使用大全
转载地址:http://www.cnblogs.com/moss_tan_jun/archive/2010/08/23/1806861.html 一旦成功地从表中检索出数据,就需要进一步操纵这些数据, ...
- 对普通函数、宏函数、内联函数的作用机制的探索
这次我们来分析的是C/C++程序员经常遇到的问题,如何在普通函数.宏函数.内联函数之间做取舍,其实它们三者之间并没有什么绝对的你好我差的说法,只要掌握了三者的作用机制的话,结合实际情况一般都能做出正确 ...
- [转]Angular 单元测试讲解
Angular_单元测试 测试分类 按开发阶段划分 按是否运行划分 按是否查看源代码划分 其他 ATDD,TDD,BDD,DDD ATDD TDD BDD DDD Angular单元测试 Karma的 ...
- Vue3 Composition API(三)——生命周期钩子、Provide函数 和 Inject函数、封装Hook案例、setup顶层编写方式
一.生命周期钩子 我们前面说过 setup 可以用来替代 data . methods . computed .watch 等等这些选项,也可以替代 生命周期钩子. 那么setup中如何使用生命周期函 ...
- python中setup函数的用法_python学习之setUp函数和tearDown函数
1,setUp():就是在一个类中最先被调用的函数,每次执行一个函数都要先执行这个函数,有几个函数就被调用几次,与放的位置无关,随便放到哪里都会先执行这个函数 2,tearDown():就是在一个类中 ...
- 使用PreTranslateMessage替代钩子函数处理键盘消息
2002年左右,我所在公司在开发基于H.323的VoIP电话系统(用了以色列一家公司的库,具体名字忘记了). 去电信科技研究院测试系统,同事发现处理键盘消息总有一些莫名其妙的问题,比如延迟或异常. 我 ...
- Vue3 setup语法糖勾子函数使用简易教程(上)
Vue3 setup语法糖勾子函数使用简易教程(上) 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的.包括语音识别.机器翻译等从基础到实战都有,很详细,分享给大家. ...
最新文章
- SkyWalking之高级玩法
- android studio sift,android - 使用SIFT / SURF通过Android Studio在Android上使用opencv进行特征提取 - 堆栈内存溢出...
- dpkg ihr状态_考勤机数据无法同步
- 五款救急的linux文件恢复软件,五款救急的Linux文件恢复软件
- Python之输入输出
- 变革中国:市场经济的中国之路
- 超级APP势不可挡--20190706
- [高项]假设情景分析VS假设分析
- mysql查询当前月份前两个月的数据_sql查询指定月份之前的几个月
- 厦门大学计算机系录取分数线贵州,厦门大学2016年在贵州各专业录取分数线
- scilab中文简介
- iframe标签控制视频大小及自动播放
- 找数据不求人,轻松获取你想要的数据!
- PythonStock(16):使用bokeh 展示,股票中的16个常用指标
- matlab 画bar柱状图与饼状图阴影填充
- truffle-contract调用合约
- Linux 安装RabbitMQ 图解教程
- linux usb驱动教学视频教程,详解linux usb host驱动编写入门
- 计算机扣款公式,迟到早退扣款公式怎么写?
- c语言 扑克牌大小,C语言实现简易扑克牌游戏