React / Enzyme:模拟/存根嵌套组件

时间:2017-10-25 22:52:22

标签: javascript html reactjs enzyme

我使用mocha / chai / enzyme / sinon来测试我的React组件。假设我正在测试以下组件,并且我需要mount来测试生命周期方法。

<Container>
  <div />
  <NestedContainer />
  <div />
</Container>

进一步假设我希望在任何情况下都安装组件NestedContainer。相反,我想做的是,在挂载NestedContainer之前使用普通的div模拟/存根Container

我已经在网上寻找解决方案,而且我发现的唯一相关资源是:https://medium.com/@AndreCalvo/react-component-testing-mocking-method-calls-components-and-time-d780d45e4cd5。引入一个大型库来模拟这些组件似乎有点沉重。

有没有人知道其他任何方法吗?感谢。

1 个答案:

答案 0 :(得分:0)

您无需安装以测试生命周期方法。

您可以使用instance()

const wrapper = shallow(<MyComponent {...props} />);

wrapper.instance().componentDidMount();

这将触发指定的生命周期方法。

这非常适合测试redux动作(可以被模拟)等等。