javascript – 渲染子组件时无法设置上下文

我正在尝试使用Enzyme测试自定义Material-ui React组件,但收到以下错误:

错误:’警告:失败的上下文类型:’ChildComponent’中未指定必需的上下文’muiTheme’.

我尝试过根据this设置上下文.我想要访问和测试的组件是子组件.

const root = shallow(<RootComponent />, {context: {muiTheme}, childContextTypes: {muiTheme: React.PropTypes.object}})
const child = root.find(ChildComponent)
child.render() // <--- this line is throwing the error

更新:this is related

解决方法:

我不确定这是解决方案,但它离目标更近了一步.

const root = mount(<RootComponent />, {
  context: {muiTheme},
  childContextTypes: {muiTheme: React.PropTypes.object}
})
const child = root.find(ChildComponent)

请注意,我使用mount而不是shallow.问题是这个我不能再使用child.find({prop:’value’}) – 返回0项……

上一篇:javascript – Jest Enzyme如何对包裹组件的存在进行浅层测试


下一篇:javascript – Jest预期已经调用的模拟函数,但它没有被调用