我正在尝试测试包装到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()
时引起的)
有什么建议吗?
提前谢谢!