背景:我正在使用测试库并试图了解一些底层机制。
由于 JSDOM 已经提供了“点击”事件的处理,我想知道:
- 这两种管理事件的方式有区别吗?
- 如果不是,为什么 fireEvent 重新定义了这个事件?
如果存在差异,我想了解它们是什么以及何时使用一种工具或另一种工具。
(对于第二个问题,我有一个想法,但我想确认一下:fireEvent 提供了一个全局统一的接口来生成事件。点击是其中的一个自然部分。)
背景:我正在使用测试库并试图了解一些底层机制。
由于 JSDOM 已经提供了“点击”事件的处理,我想知道:
如果存在差异,我想了解它们是什么以及何时使用一种工具或另一种工具。
(对于第二个问题,我有一个想法,但我想确认一下:fireEvent 提供了一个全局统一的接口来生成事件。点击是其中的一个自然部分。)
你猜对了。他们甚至在他们的文档中这么说。它只是一个“触发 DOM 事件的便捷方法”。您可以在此处查看完整的事件地图(也可单击): https ://github.com/testing-library/dom-testing-library/blob/master/src/event-map.js
HTMLElement.click
触发点击事件
fireEvent.click
触发带有您选择的事件属性的点击事件(例如detail: 2
)
直接来自文档:
笔记
大多数项目都有一些 fireEvent 用例,但大多数时候您可能应该使用@testing-library/user-event。
userEvent.click
hover
如果用户单击元素( 、、pointerdown
等) ,则触发浏览器中应发生的所有事件