Angular单元测试之事件触发的实现


Posted in Javascript onJanuary 20, 2020

=在angular项目中时常有一些click、input、focusout等事件操作,那么如何在单元测试中触发这些事件呢?

一、触发Click事件

// 方法一
const ele = fixture.debugElement.query(By.css("#id"));
ele.triggerEventHandler('click', null)
fixture.detectChanges(); // 更新视图

// 方法二
const ele = fixture.nativeElement.querySelector("#id");
ele.click();
fixture.detectChanges(); // 更新视图

二、触发input事件

触发input事件,需要在获取到input元素后,先给输入框绑定值,然后去触发输入事件,最后更新视图。

const input = fixture.nativeElement.querySelector("#input");
input.value = 'abc';
input.dispatchEvent(new Event('input'));
fixture.detectChanges(); // 更新视图

二、触发focusout事件

const input = fixture.nativeElement.querySelector("#input");
input.dispatchEvent(new Event('focusout'));
fixture.detectChanges(); // 更新视图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
node.js学习总结之调式代码的方法
Jun 25 Javascript
js 动态修改css文件用到了cssRule
Aug 20 Javascript
js淡入淡出焦点图幻灯片效果代码分享
Sep 08 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
深入理解Vue router的部分高级用法
Aug 15 Javascript
vue中实现点击变成全屏的多种方法
Sep 27 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
Jan 20 #Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 #Javascript
阿望教你用vue写扫雷小游戏
Jan 20 #Javascript
JavaScript Window窗口对象属性和使用方法
Jan 19 #Javascript
浅谈webpack和webpack-cli模块源码分析
Jan 19 #Javascript
js原生map实现的方法总结
Jan 19 #Javascript
Node.js操作MongoDB数据库实例分析
Jan 19 #Javascript
You might like
探讨方法的重写(覆载)详解
2013/06/08 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
2014/04/04 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
js实现简单扫雷
2020/11/27 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
django的csrf实现过程详解
2019/07/26 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
培训班开班仪式主持词
2014/03/28 职场文书
指导老师鉴定意见
2015/06/05 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
Pytest中conftest.py的用法
2021/06/27 Python
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android