使用事件作为参数对点击进行酶测试

发布于 2025-01-16 12:46:48 字数 599 浏览 3 评论 0原文

“我正在尝试使用酶来测试这段代码。我想模拟点击,但收到错误“引用错误,事件未定义”。我该如何克服这一点?我需要模拟这个函数吗?

const handleClick = (event : any) => {
  setAnchorEl(event.target);
  setOpen(true);
};
<IconButton onClick={() => handleClick(event)}>
  <DeleteIcon className={classes.threeDotsIcon}/>
</IconButton>

我尝试像这样模拟点击,但它给了我一个错误,事件未定义。

'''

let wrapper = mount(<Provider store={store1}><MyComponent{...mockProps} /></Provider>);
let button = wrapper.findWhere(elem => elem.name() === 'IconButton');
button.simulate('click');'''

'I am trying to test out this code using enzyme. I want to simulate a click but i get an error "Reference Error, Event is not defined". How do i get past that? Do i need to mock the function?'

const handleClick = (event : any) => {
  setAnchorEl(event.target);
  setOpen(true);
};
<IconButton onClick={() => handleClick(event)}>
  <DeleteIcon className={classes.threeDotsIcon}/>
</IconButton>

I tried simulating the click like this but it gives me an error, event is not defined.

'''

let wrapper = mount(<Provider store={store1}><MyComponent{...mockProps} /></Provider>);
let button = wrapper.findWhere(elem => elem.name() === 'IconButton');
button.simulate('click');'''

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的奇迹 2025-01-23 12:46:48

您忘记将事件传递给 handleClick 事件处理程序,onClick={(event) =>;处理点击(事件)}。并且您需要传递一个模拟点击事件对象,如下所示 button.simulate('click', { target: 'whatever' })

You forgot to pass the event to handleClick event handler, onClick={(event) => handleClick(event)}. And you need to pass a simulated click event object like this button.simulate('click', { target: 'whatever' })

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文