关于为什么需要 mock document.addEventListener 原因?

来源:5-6 月份选择器进阶测试

HarryZhao

2019-04-03

我想请问一下老师,是不是因为无法通过document.simulate('click')的方式来模拟触发文档上的点击事件,所以才需要通过jest.fn()来监控document.addEventListener从而获取事件触发时的回调this.handleClick,然后传入不同的target来执行回调进行测试?
因为,我是觉得能够直接通过document.simulate('click')模拟,那我们直接测试点击后的结果就好了,而不需要这么麻烦的去 mock

写回答

1回答

张轩

2019-04-03

同学 你说的没错 我在做这个 feature 的时候也有类似的疑问 经过我对答案的搜寻 发现没有简单的 document.simulate('click') 的方法,因为jest 模拟的环境是 jsDom,不是真实的 DOM 环境,所以没发直接这样模拟,用我的这种方法算是曲线救国吧,也是 github 最推荐的方法,我会继续看看有没有什么好方法,毕竟这样稍微有点绕,如果有新的发现,我会更新课程。

1
1
HarryZhao
了解了,感谢老师的回复
2019-04-04
共1条回复

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

713 学习 · 177 问题

查看课程