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中将一个值转换为字符串的方法分析[译]
Sep 21 Javascript
jquery的flexigrid无法显示数据提示获取到数据
Jul 19 Javascript
Jquery插件分享之气泡形提示控件grumble.js
May 20 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
js+css实现tab菜单切换效果的方法
Jan 20 Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 Javascript
webpack3之loader全解析
Oct 26 Javascript
解决Layui数据表格显示无数据提示的问题
Nov 14 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
Apr 13 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
JS实现前端路由功能示例【原生路由】
May 29 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 Vue.js
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
学习php设计模式 php实现状态模式
2015/12/07 PHP
php生成微信红包数组的方法
2019/09/05 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
浅谈Javascript面向对象编程
2011/11/15 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
JS实现图片拖拽交换效果
2018/11/30 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
用Python编写简单的微博爬虫
2016/03/04 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
德育标兵事迹材料
2014/08/24 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
质量保证书格式
2015/02/27 职场文书
妇联2016年六一国际儿童节活动总结
2016/04/06 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis