首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用测试库测试MUI5选择

用测试库测试MUI5选择
EN

Stack Overflow用户
提问于 2022-09-23 23:03:23
回答 1查看 181关注 0票数 1

我使用create 5 (带有Reactive17、Jest和testing)以及MUI 5。我想测试单击一个简单的选择菜单,并确保菜单选项出现。我尝试了以下几点:

代码语言:javascript
复制
  it('shows the menu', async () => {
    render(<FormControl fullWidth>
      <InputLabel id="testselect-label">Age</InputLabel>
      <Select
        labelId="testselect-label"
        id="testselect"
        data-testid="testselect"
        label="Age"
        value={10}
      >
        <MenuItem value={10}>Ten</MenuItem>
        <MenuItem value={20}>Twenty</MenuItem>
        <MenuItem value={30}>Thirty</MenuItem>
      </Select>
    </FormControl>);
    const selectButton = screen.getByTestId("testselect");
    userEvent.click(selectButton);
    expect(await screen.findByRole('presentation')).toBeInTheDocument();
  });

但是菜单(有role="presentation")没有出现,所以测试失败。如果在测试后调用screen.debug(),它会打印“选择”按钮,但不会打印菜单。

我已经看过这个问题/回答了,我发现MUI5 5的Select响应mouseDown事件而不是点击事件。但是userEvent.click两者都发送,所以这不是问题所在。我也在没有运气的情况下尝试了fireEvent.mouseDown

我还尝试了调试器,据我所知,从未调用相关MUI组件(SelectInput)的SelectInput处理程序。

有人有这样的例子吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-23 23:17:01

看起来您需要单击button元素:

代码语言:javascript
复制
    const selectButton = within(screen.getByTestId('testselect')).getByRole('button');
    userEvent.click(selectButton);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73833709

复制
相关文章

相似问题

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