fireEvent.click()(形成 fireEvent)与 element.click()(来自 JSDOM)
fireEvent.click() (form fireEvent) vs element.click() (from JSDOM)
上下文:我正在使用测试库并试图了解一些底层机制。
由于JSDOM已经提供了对“点击”事件的处理,我想知道:
- 这两种活动管理方式有区别吗?
- 如果不是,为什么fireEvent要重新定义这个事件?
如果存在差异,我想了解它们是什么以及何时使用其中一种工具。
(对于第二个问题,我有一个想法,但我想确认一下:
fireEvent 提供了一个全局统一的接口来生成事件。点击是它的自然组成部分。)
你猜对了。他们甚至在他们的文档中这样说。它只是一个“触发 DOM 事件的便捷方法”。
您可以在此处查看完整的事件地图(另请单击):
https://github.com/testing-library/dom-testing-library/blob/master/src/event-map.js
HTMLElement.click
触发点击事件
fireEvent.click
触发具有您选择的事件属性的点击事件(例如 detail: 2
)
直接来自 docs:
Note
Most projects have a few use cases for fireEvent, but the majority of the time you should probably use @testing-library/user-event.
userEvent.click
触发用户单击元素(hover
、pointerdown
等)时应该在浏览器中发生的所有事件
上下文:我正在使用测试库并试图了解一些底层机制。
由于JSDOM已经提供了对“点击”事件的处理,我想知道:
- 这两种活动管理方式有区别吗?
- 如果不是,为什么fireEvent要重新定义这个事件?
如果存在差异,我想了解它们是什么以及何时使用其中一种工具。
(对于第二个问题,我有一个想法,但我想确认一下: fireEvent 提供了一个全局统一的接口来生成事件。点击是它的自然组成部分。)
你猜对了。他们甚至在他们的文档中这样说。它只是一个“触发 DOM 事件的便捷方法”。 您可以在此处查看完整的事件地图(另请单击): https://github.com/testing-library/dom-testing-library/blob/master/src/event-map.js
HTMLElement.click
触发点击事件
fireEvent.click
触发具有您选择的事件属性的点击事件(例如 detail: 2
)
直接来自 docs:
Note
Most projects have a few use cases for fireEvent, but the majority of the time you should probably use @testing-library/user-event.
userEvent.click
触发用户单击元素(hover
、pointerdown
等)时应该在浏览器中发生的所有事件