雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

@testing-library userEvent和fireEvent的区别

2024-09-01 36

写react项目UT的时候@testing-library userEvent和fireEvent都能实现触发事件的功能,那么它们的区别是什么?

fireEvent官方建议

大多数项目都有一些 fireEvent 的用例,但大多数时候你应该使用@testing-library/user-event。

fireUser和fireEvent的关系和区别

@testing-library/user-event 是一个构建在 fireEvent 之上的包,但它提供了几种更接近用户交互的方法。 在上面的示例中,fireEvent.change 将简单地触发输入上的单个更改事件。 然而,类型调用也会为每个字符触发 keyDown、keyPress 和 keyUp 事件。 它更接近于用户的实际交互。 这有利于与您可能使用的实际上不监听更改事件的库一起工作。

结论

优先使用userEvent,如果userEvent实在无法实现再使用fireEvent。

举例

// 不建议
fireEvent.change(input, {target: {value: 'hello world'}})

// 建议
userEvent.type(input, 'hello world')


更新于:2个月前
赞一波!

文章评论

评论问答