首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Jest & Enzyme模拟按钮点击

用Jest & Enzyme模拟按钮点击
EN

Stack Overflow用户
提问于 2020-08-13 20:08:30
回答 2查看 524关注 0票数 0

我正在尝试用jest和酶来模拟一次点击,而且我对react的测试库还是个新手。

我的组件正在使用Material UI。

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

代码语言:javascript
复制
                    <div>
                        <Typography className={classes.instructions}>
                            All steps completed - you're finished
                        </Typography>
                        <Button onClick={handleNext} className={classes.button}>
                            Next
                        </Button>
                    </div>

在这一部分中,我想测试一下按钮点击

以下是我到目前为止所做的工作:

代码语言:javascript
复制
 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);
    })

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

谢谢!!

EN

回答 2

Stack Overflow用户

发布于 2020-08-15 01:09:04

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

索引始终从0开始。

票数 0
EN

Stack Overflow用户

发布于 2020-09-01 10:24:17

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

代码语言:javascript
复制
wrapper.find('button').simulate('submit');

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63394853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档