javascript - 如何模拟 React.MouseEvent<{}, MouseEvent> onClick 事件?
问题描述
我正在使用 Jest 测试一个用 TypeScript 编写的 React 组件。我不能使用.simulate()
,因为不赞成直接调用组件的onClick()
函数道具。这是我的测试代码:
// Get the onClick function
const buttonOnClick = wrapper.find('#diffpicker-button').first().props().onClick;
// Make sure the function is not undefined
if (!buttonOnClick) return;
// Mock event
const clickEvent = new MouseEvent('click');
Object.assign(clickEvent, { preventDefault: jest.fn() });
// Call the onClick function
buttonOnClick(clickEvent);
但是,当我这样做时,我收到错误:Argument of type 'MouseEvent' is not assignable to parameter of type 'MouseEvent<{}, MouseEvent>'.
我的问题是,如何模拟 MouseEvent<{}、MouseEvent> 类型的事件?
解决方案
推荐阅读
- react-native - React Native:如何在 react native v5(不是 v4)中将多个 stackNavigator 包含到一个 DrawerNavigator 中
- reactjs - CDataTable (Core UI React) prop onPageChange 触发 2 次
- image - 网站更新清除所有客户端设备上的缓存,以便更新图像和内容
- r - 一个矩阵的行名和列名到另一个矩阵
- angular - 如何使用角度中的elementRef在一个分区中搜索选定的复选框
- javascript - React Material UI OutlinedInput 不显示错误信息
- mysql - 从当前行和上一行计算 2 列
- python - 如何使用赋值表达式和打字?
- docker - 在 Docker 映像上安装 SSH
- javascript - 如何将“日期”类型的输入值传递给每秒计算和更新年龄的函数