如何使用酶在ContextConsumer组件内部潜水或检查React组件?

时间:2019-01-27 14:50:38

标签: reactjs jestjs enzyme

我正在尝试测试包装到ContextConsumer中的React组件的道具,但是在运行测试时,酶告诉我Method “props” is meant to be run on 1 node. 0 found instead.

我要测试的组件也被包装到另一个常规组件中。所有这些东西的继承树如下:

-> MainComponent(我正在用enzyme.shallow()实例化)

--------> SubComponent(嵌套在MainComponent中,我正在通过.find()进行深入研究。此组件包装在React上下文使用者中)< / p>

----------------> propOfSubComponent(包含要测试的特定组件的React道具)

------------------------> SubSubComponent(最后一个组件,我正在尝试使用{{1} })

--------------------------------> .find()(测试的最终道具)

我尝试了很多方法来解决问题,但没有结果。

下面是我的实际代码。

propOfSubSubComponent

酶日志是:

<MainComponent {...someDefaultProps}>
  <SubComponent
    propOfSubComponent={
      //this component is wrapped in another file
      //into a React ContextConsumer
      <SubSubComponent propOfSubSubComponent />
    }
  />
</MainComponent>;

describe('Main component', () => {
  it('the prop is correctly passed', () => {
    const wrapper = enzyme.shallow(<MainComponent {...someDefaultProps} />);
    const SubSubComponent = wrapper
      .find('SubComponent')
      .dive()
      .find('SubSubComponent');


    expect(SubSubComponent.props().propOfSubSubComponent).toBe(0);
  });
});

(该错误是在尝试执行Method “props” is meant to be run on 1 node. 0 found instead. 中的SubSubComponent.props()时引起的)

有什么建议吗?

提前谢谢!

0 个答案:

没有答案