首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Jest和酶测试材料UI组件

用Jest和酶测试材料UI组件
EN

Stack Overflow用户
提问于 2020-01-23 20:11:18
回答 1查看 1.1K关注 0票数 4

我试图测试一个反应组件,它使用<ExpansionPanel />作为它的子组件与Jest和酶。

作为参考,console.log(wrapper.debug())如下所示:

代码语言:javascript
复制
const wrapper = shallow(<SomeComponent/>);
console.log(wrapper.debug());

<Fragment>
  <WithStyles(ForwardRef(ExpansionPanel)) defaultExpanded={true}>
    <WithStyles(ForwardRef(ExpansionPanelSummary)) expandIcon={{...}} aria-controls="panel1a-content" id="panel1a-header">
      <p className="summary text">
        Basic Options
      </p>
    </WithStyles(ForwardRef(ExpansionPanelSummary))>
    <WithStyles(ForwardRef(ExpansionPanelDetails))>
      <Connect(OptionDetails) optionType="basicOptions" />
    </WithStyles(ForwardRef(ExpansionPanelDetails))>
  </WithStyles(ForwardRef(ExpansionPanel))>
  <WithStyles(ForwardRef(ExpansionPanel)) defaultExpanded={false}>
    <WithStyles(ForwardRef(ExpansionPanelSummary)) expandIcon={{...}} aria-controls="panel1a-content" id="panel1a-header">
      <p className="summary text">
        Advanced Options
      </p>
    </WithStyles(ForwardRef(ExpansionPanelSummary))>
    <WithStyles(ForwardRef(ExpansionPanelDetails))>
      <Connect(OptionDetails) optionType="advancedOptions" />
    </WithStyles(ForwardRef(ExpansionPanelDetails))>
  </WithStyles(ForwardRef(ExpansionPanel))>
</Fragment>

如您所见,它将Material的组件呈现为高阶组件(包装在WithStyles中)。我只是想知道,是否可以这样做,以测试组件是否正确呈现。

代码语言:javascript
复制
// Notice how I am explicitly specifying WithStyles(ForwardRef())
expect(wrapper.find('WithStyles(ForwardRef(ExpansionPanel)')).toHaveLength(x);

我发现了一个类似的问题,但目前还没有答案。Similar post (no answer)

先谢了。

编辑

为了澄清,我上面的建议是有效的,但我只是想知道这是否是测试HOCs的正确方法。

此外,使用酶的dive()并不真正有效,因为我正在测试的实际成分不是临时的(它认为没有子成分可供深入研究)。

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 10:32:32

不知道你的建议会不会奏效。像这样的事情可能会更好。

代码语言:javascript
复制
const expansionPanelElements = wrapper.find(Fragment).filter(item =>item.exists('ExpansionPanel')));
expect(expansionPanelElements.toHaveLength(x));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59886377

复制
相关文章

相似问题

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