返回
@testing-library userEvent和fireEvent的区别
2022-12-22 4455 0
写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')
网友点评
提交
相关阅读
@testing-library/react单元测试getBy queryBy和findBy的区别
React @testing-library UserEvent.paste用法更新到14版本后不生效
CentOS停更后如何选择?AlmaLinux与Rocky Linux深度对比,助你选对云服务器平替方案
如果使用canvas开发网页游戏?
2025年最全热门AI工具推荐:ChatGPT、Gemini、DeepSeek等引领智能新时代
Claude Code隐藏彩蛋曝光:/buddy宠物系统上线,AI编程工具开始养成化?
ML.NET报错“RegressionCatalog.RegressionTrainers未包含“FastTree”的定义
Blazor ServerPrerendered模式OnInitialized{Async}执行两次