fireEvent.click()(形成 fireEvent)与 element.click()(来自 JSDOM)

fireEvent.click() (form fireEvent) vs element.click() (from JSDOM)

上下文:我正在使用测试库并试图了解一些底层机制。

由于JSDOM已经提供了对“点击”事件的处理,我想知道:

如果存在差异,我想了解它们是什么以及何时使用其中一种工具。

(对于第二个问题,我有一个想法,但我想确认一下: 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 触发用户单击元素(hoverpointerdown 等)时应该在浏览器中发生的所有事件