具有依赖关系的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服务进行单元测试相关推荐

  1. 使用TestBed测试具有依赖关系的Angular服务

    具有依赖关系的Service源代码: import { Injectable } from '@angular/core';@Injectable() export class MasterServi ...

  2. ASP.NET Core基础知识(三)【依赖关系注入(服务)】

    在 ASP.NET Core 依赖注入 ASP.NET Core 支持依赖关系注入 (DI) 软件设计模式,这是一种在类及其依赖关系之间实现控制反转 (IoC)的技术. 有关特定于 MVC 控制器中依 ...

  3. 类继承和依赖注入的关系_管理类依赖关系:依赖关系注入,服务定位符和工厂简介,第1部分...

    类继承和依赖注入的关系 Let's face it: for good or bad, OOP has been actively drilling deep holes in the soil of ...

  4. RPM软件包管理 软件依赖关系 Yum软件的使用 上传与下载 时间设置 命令补充 zip归档工具

    环境准备 1.光盘文件放入挂载光驱设备 2.挂载光驱设备(临时挂载) mount /dev/cdrom /mnt ls /mnt ls /mnt/Packags 软件包一般都会以.rpm结尾 RPM软 ...

  5. Angular的后院:组件依赖关系的解决

    by Dor Moshe 通过Dor Moshe Angular的后院:解决 组件依赖关系 (Angular's Backyard: The Resolving of Components Depen ...

  6. 对具有外部依赖的Angular服务类(service class)进行单元测试的几种方式

    两个service的源代码: import { Injectable } from '@angular/core';@Injectable() export class MasterService { ...

  7. ROS Melodic 的依赖关系记录

    我想看到各个报错和包的依赖关系,比如在 catkin_make 的时候,可能会说缺某些包,要安装依赖, 在说依赖之前,再提一点,因为我用的是树莓派3b+,内存只有1G,在编译的时候很可能会由于内存不足 ...

  8. 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系

    各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...

  9. ORDNet:为场景分割捕获全范围依赖关系

    点击上方"深度学习爱好者",选择加"星标"或"置顶" 重磅干货,第一时间送达小白导读论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...

最新文章

  1. JSTL标签库的一些基础实例
  2. 入职培训笔记记录--day2续(1、运算符 2、数据的输入与输出 3、控制语句)
  3. 【C++】cannot access private member declared in class 'Box'
  4. linux 怎么添加path环境变量,Linux下怎么添加和查看PATH环境变量
  5. java锁的级别_Java锁的那些事儿之JDK锁(ReentrantLock)
  6. opencv图片分类+特征图片截取
  7. iPhone 12刚发布,黄牛就出动:蓝色最火,加价一千是普遍水平
  8. 离线安装mysql5.6及依赖_Linux离线安装mysql 5.6详细步骤
  9. 【HLSDK系列】服务端 AddToFullPack 函数
  10. 从ip_queue到nfnetlink_queue(上)
  11. CSAPP-C1-计算机系统漫游
  12. 企业微信网页授权初试
  13. 读《淘宝技术这十年》有感
  14. js vue 获取 (昨天、今天、明天) 时间
  15. 220v降压成5v电路图-220v降压5v简单电路
  16. android 实现按键精灵
  17. Nano Measurer 1.2.5 for win 纳米颗粒粒度分析
  18. 钉钉邮箱登录入口_清博舆情钉钉小程序上线 ,五大优势三大亮点助力工作更高效...
  19. RecyclerView之使用ItemTouchHelper实现交互动画
  20. CSS3实现渐变背景动画特效

热门文章

  1. java excel表格数据导入
  2. 我的Android进阶之旅------Android MediaPlayer播放网络音频的实例--网络mp3播放器
  3. I am beginning perl
  4. 漫谈C#编程中的多态与new关键字
  5. 获取32R的图像的直方图的一个算法
  6. 2018-2019年度总结
  7. 第16章:MongoDB-聚合操作--聚合管道--$project
  8. 前端代码有关搜索引擎的代码
  9. Web缓存的作用与类型
  10. Debian 8开启sftp服务