使用 Jest & Enzyme 模拟按钮点击



我正在尝试用jest&enzyme模拟点击,我是react测试库的新手
我的组件正在使用材料UI

以下是我要测试的代码部分:

<div>
<Typography className={classes.instructions}>
All steps completed - you're finished
</Typography>
<Button onClick={handleNext} className={classes.button}>
Next
</Button>
</div>

在这一部分中,我想测试按钮点击
以下是我迄今为止所做的:

let wrapper;
const handleNext = jest.fn();
beforeEach(() => {
wrapper = mount(<ModelStepper handleNext={handleNext}/>)
})
it("handleNext increment", () => {
const btn = wrapper.find(Button).at(1)
expect(handleNext).toBeCalledTimes(0);
btn.simulate("click");
expect(handleNext).toBeCalledTimes(1);
})

由于某种原因,我无法点击它,我已经在控制台上记录了按钮的文本,这是我想要点击的正确按钮。

谢谢!!

我也处于类似的情况,但我的按钮在表单中。对于这种情况,有效的方法是:

wrapper.find('button').simulate('submit');

它将触发事件并评估更改。

只需将此行:const btn = wrapper.find(Button).at(1)更改为const btn = wrapper.find(Button).at(0)

索引总是从0开始。

最新更新