我正在尝试测试在处理HotKey组合的HOC中调用的函数(模拟(' keyDown')。但是,我不理解Enzyme如何处理这种情况。
我有许多由HOC包裹的组件,如下所示:
class RealComponent extends Component {
constructor(props) {
super(props);
}
render() {
return (<div>The views</div>);
}
}
export default Hoc(RealComponent);
和HOC本身是:
const Hoc = RealComponent => {
class Hoc extends Component {
constructor() {
super();
}
methodGetsTriggered() { // <this is the method I want to test when simulating keyDown
this.childComponent.methodToCall();
}
render() {
return (
<RealComponent
ref={component => (this.childComponent = component)}
{...this.props}
/>
);
}
}
return Hoc;
};
module.exports = Hoc;
当我尝试使用
进行测试时 shallow(Hoc(<RealComponent theProps={things} />),{context});
我收到错误
不变违规:ReactShallowRenderer render():无效的组件元素。不要传递组件类,请确保通过将其传递给React.createElement来实例化它。
我正在尝试测试Hoc中的methodGetsTriggered()
。