关于为什么需要 mock document.addEventListener 原因?
来源:5-6 月份选择器进阶测试
HarryZhao
2019-04-03
我想请问一下老师,是不是因为无法通过document.simulate('click')
的方式来模拟触发文档上的点击事件,所以才需要通过jest.fn()
来监控document.addEventListener
从而获取事件触发时的回调this.handleClick
,然后传入不同的target
来执行回调进行测试?
因为,我是觉得能够直接通过document.simulate('click')
模拟,那我们直接测试点击后的结果就好了,而不需要这么麻烦的去 mock
写回答
1回答
-
同学 你说的没错 我在做这个 feature 的时候也有类似的疑问 经过我对答案的搜寻 发现没有简单的 document.simulate('click') 的方法,因为jest 模拟的环境是 jsDom,不是真实的 DOM 环境,所以没发直接这样模拟,用我的这种方法算是曲线救国吧,也是 github 最推荐的方法,我会继续看看有没有什么好方法,毕竟这样稍微有点绕,如果有新的发现,我会更新课程。
112019-04-04
相似问题