【发布时间】:2026-02-03 05:25:01
【问题描述】:
模拟按钮点击似乎是一个非常简单/标准的操作。然而,我无法让它在 Jest.js 测试中工作。
这是我尝试过的(也使用 jQuery),但它似乎没有触发任何事情:
import { mount } from 'enzyme';
page = <MyCoolPage />;
pageMounted = mount(page);
const button = pageMounted.find('#some_button');
expect(button.length).toBe(1); // It finds it alright
button.simulate('click'); // Nothing happens
【问题讨论】:
-
你怎么知道它什么也没做?您接下来检查什么以查看是否发生了按钮点击?
-
好问题。我希望出现错误字段: const field = pageMounted.find('#notification');期望(field.length).toBe(1);
-
人力资源部。您是否在运行 onClick 的函数中添加了
console.warn以查看它是否在 Jest 控制台中触发? -
能否请您添加
MyCoolPage组件的代码,否则很难弄清楚实际问题是什么。 -
谢谢你们的提示。我发现了我的问题,感谢您的提问。我基本上用一个简单的按钮做了一个小测试,它起作用了: MyCoolPage = ( );然后我意识到我的按钮属于redux-form,所以它没有onClick,而是onSubmit,所以添加button.simulate('submit');解决了这个问题。再次感谢您的反馈!
标签: javascript reactjs testing jestjs enzyme