使用jasmine.createSpyObj具有依赖关系的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 with Angular jasmine.createSpyObj', () => {let masterService: MasterService;let valueServiceSpy: jasmine.SpyObj<ValueService>;beforeEach(() => {const spy = jasmine.createSpyObj('ValueService', ['getValue']);TestBed.configureTestingModule({// Provide both the service-to-test and its (spy) dependencyproviders: [ MasterService, { provide: ValueService, useValue: spy }]});// Inject both the service-to-test and its (spy) dependencymasterService = TestBed.inject(MasterService);valueServiceSpy = TestBed.inject(ValueService) as jasmine.SpyObj<ValueService>;});it('#getValue should return stubbed value from a spy', () => {const stubValue = 'stub value';valueServiceSpy.getValue.and.returnValue(stubValue);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);});
});
测试结果:
使用jasmine.createSpyObj具有依赖关系的Angular服务进行单元测试相关推荐
- 使用TestBed测试具有依赖关系的Angular服务
具有依赖关系的Service源代码: import { Injectable } from '@angular/core';@Injectable() export class MasterServi ...
- ASP.NET Core基础知识(三)【依赖关系注入(服务)】
在 ASP.NET Core 依赖注入 ASP.NET Core 支持依赖关系注入 (DI) 软件设计模式,这是一种在类及其依赖关系之间实现控制反转 (IoC)的技术. 有关特定于 MVC 控制器中依 ...
- 类继承和依赖注入的关系_管理类依赖关系:依赖关系注入,服务定位符和工厂简介,第1部分...
类继承和依赖注入的关系 Let's face it: for good or bad, OOP has been actively drilling deep holes in the soil of ...
- RPM软件包管理 软件依赖关系 Yum软件的使用 上传与下载 时间设置 命令补充 zip归档工具
环境准备 1.光盘文件放入挂载光驱设备 2.挂载光驱设备(临时挂载) mount /dev/cdrom /mnt ls /mnt ls /mnt/Packags 软件包一般都会以.rpm结尾 RPM软 ...
- Angular的后院:组件依赖关系的解决
by Dor Moshe 通过Dor Moshe Angular的后院:解决 组件依赖关系 (Angular's Backyard: The Resolving of Components Depen ...
- 对具有外部依赖的Angular服务类(service class)进行单元测试的几种方式
两个service的源代码: import { Injectable } from '@angular/core';@Injectable() export class MasterService { ...
- ROS Melodic 的依赖关系记录
我想看到各个报错和包的依赖关系,比如在 catkin_make 的时候,可能会说缺某些包,要安装依赖, 在说依赖之前,再提一点,因为我用的是树莓派3b+,内存只有1G,在编译的时候很可能会由于内存不足 ...
- 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系
各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...
- ORDNet:为场景分割捕获全范围依赖关系
点击上方"深度学习爱好者",选择加"星标"或"置顶" 重磅干货,第一时间送达小白导读论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...
最新文章
- JSTL标签库的一些基础实例
- 入职培训笔记记录--day2续(1、运算符 2、数据的输入与输出 3、控制语句)
- 【C++】cannot access private member declared in class 'Box'
- linux 怎么添加path环境变量,Linux下怎么添加和查看PATH环境变量
- java锁的级别_Java锁的那些事儿之JDK锁(ReentrantLock)
- opencv图片分类+特征图片截取
- iPhone 12刚发布,黄牛就出动:蓝色最火,加价一千是普遍水平
- 离线安装mysql5.6及依赖_Linux离线安装mysql 5.6详细步骤
- 【HLSDK系列】服务端 AddToFullPack 函数
- 从ip_queue到nfnetlink_queue(上)
- CSAPP-C1-计算机系统漫游
- 企业微信网页授权初试
- 读《淘宝技术这十年》有感
- js vue 获取 (昨天、今天、明天) 时间
- 220v降压成5v电路图-220v降压5v简单电路
- android 实现按键精灵
- Nano Measurer 1.2.5 for win 纳米颗粒粒度分析
- 钉钉邮箱登录入口_清博舆情钉钉小程序上线 ,五大优势三大亮点助力工作更高效...
- RecyclerView之使用ItemTouchHelper实现交互动画
- CSS3实现渐变背景动画特效