使用Async对Angular异步代码进行单元测试
https://www.digitalocean.com/community/tutorials/angular-testing-async-fakeasync
The async utility tells Angular to run the code in a dedicated test zone that intercepts promises.
async可以让Angular在一个专属的test zone里执行代码,该zone可以截获promises.
whenStable: allows us to wait until all promises have been resolved to run our expectations.
当所有的promises都resolved之后,whenStable触发,能够进行expectation的evaluation了。
看个例子:
import { Component } from '@angular/core';@Component({selector: 'app-root',template: `<h1<{{ title }}</h1>set title`
})
export class AppComponent {title: string;setTitle() {new Promise(resolve => {resolve('One crazy app!');}).then((val: string) => {this.title = val;});}
}
When the button is clicked, the title property is set using a promise.
如何测试:
// ...our imports heredescribe('AppComponent', () => {let fixture: ComponentFixture<AppComponent>;let debugElement: DebugElement;beforeEach(async(() => {TestBed.configureTestingModule({declarations: [AppComponent],providers: [IncrementDecrementService]}).compileComponents();fixture = TestBed.createComponent(AppComponent);debugElement = fixture.debugElement;}));it('should display title', async(() => {debugElement.query(By.css('.set-title')).triggerEventHandler('click', null);fixture.whenStable().then(() => {fixture.detectChanges();const value = debugElement.query(By.css('h1')).nativeElement.innerText;expect(value).toEqual('One crazy app!');});}));
});
使用Async对Angular异步代码进行单元测试相关推荐
- 使用FakeAsync对Angular异步代码进行单元测试
The problem with async is that we still have to introduce real waiting in our tests, and this can ma ...
- 用Async函数简化异步代码
Promise 在 JavaScript 上发布之初就在互联网上流行了起来 - 它们帮开发人员摆脱了回调地狱,解决了在很多地方困扰 JavaScript 开发者的异步问题.但 Promises 也远非 ...
- 用 Async 函数简化异步代码
Promise 在 JavaScript 上发布之初就在互联网上流行了起来 - 它们帮开发人员摆脱了回调地狱,解决了在很多地方困扰 JavaScript 开发者的异步问题.但 Promises 也远非 ...
- java 单元测试 异步_java - 如何使用CountdownLatch对异步代码进行单元测试同步 - 堆栈内存溢出...
我通过代码修改了公开我使用包保护函数注册的回调,如下所示: public void SomeClass { private final CountDownLatch latch = new Count ...
- 使用 Async / Await 来编写简明的异步代码
原文链接:https://blog.patricktriest.com/what-is-async-await-why-should-you-care/ 复制代码 停止书写回调函数并爱上ES8 以前, ...
- 避免回调地狱的解决方案 async/await:用同步的方式去写异步代码
文章目录 前言 一.引入异步编程 二.常见处理异步编程的几种方式 1.Generator函数 2.Promise函数 3.async/await 总结 前言 这篇文章主要给大家分享一下,自己关于异步编 ...
- 【测试与自动化】介绍-框架-Jest-覆盖率-异步代码-e2e-Vue测试
测试与自动化 软件测试和自动化测试介绍 前端自动化测试框架 使用Jest编写单元测试 统计测试覆盖率 使用Jest测试异步代码 使用Cypress进行e2e测试 测试 Vue 项目 软件测试和自动化测 ...
- Atitit. Async await 优缺点 异步编程的原理and实现 java c# php
Atitit. Async await 优缺点 异步编程的原理and实现 java c# php 1. async & await的来源1 2. 异步编程history1 2.1. 线程池 2 ...
- ASP.NET WebForm中用async/await实现异步
1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...
最新文章
- Linxu安装Tomcat与Jdk并卸载自带OpenJdk
- Vector Enumeration
- ITK:创建一个二进制球结构元素
- 2020年跨行业跨领域工业互联网平台
- 云+X案例展 | 传播类:九州云 SD-WAN 携手上海电信,助力政企客户网络重构换新颜...
- consul的安装配置 一centos7环境
- python实例变量命名规则_Java,Python的一些命名规范
- Shell脚本学习-阶段五-MYSQL101条调优
- CrtmpServer 接收推送视频流 注册流基本流程
- ERP系统容灾方案对ERP生产系统的影响
- SQL常见错误及处理方法
- Linux的磁盘系统和文件系统显示的文件大小为什么不一样(du指令和ls指令的区别)...
- tns无监听程序_成ORA-12560: TNS: 协议适配器错误的问题的原因
- Java serialVersionUID
- HTML5期末大作业:基于HTML+CSS+JavaScript实现中国风文化传媒企业官网源码
- 去除加粗的css,CSS去掉b加粗和strong加粗标签样式
- 千锋教育python2104期总结day14
- 八数码问题-8puzzle
- 如何查看文件的 MD5值?
- 第三章 总线和存储器
热门文章
- nginx反向代理缓存服务器构建
- DHCP服务_学习笔记
- swift和oc区别----属性部分(参考官方swift2.1文档)
- [zz]为 lua 封装 C 对象的生存期管理问题
- 经典SQL语句大全(技巧篇)
- 编译通过,但在运行时报Resolution of the dependency failed
- mutt的实现, mutt+msmtp+getmail配置
- 2008年初看的书[带简评]
- 什么是卷影复制,卷影服务是什么
- Microsoft.TeamFoundation.VersionControl.Client.dll的位置