浅测试组件,抱怨从mapStateToProps和mapDispatchToProps获得所需的道具

时间:2017-08-15 07:58:13

标签: reactjs redux enzyme jest

我想对我的组件进行浅层测试,我知道浅层测试只能测试一个级别。我的问题是我收到警告,因为我的组件需要mapStateToProps和mapDispatchToProps接收的道具。这让我想知道如何正确地将这个道具发送到我的浅层渲染组件而不重复这些方法。 我正在使用开玩笑和酶。

1 个答案:

答案 0 :(得分:2)

让我们将您的组件调用ComponentA包装在React-Redux的HOC connect中(假设您正在使用它,因为您的问题中有mapStateToPropsmapDispatchToProps)。 测试此组件的传统方法是:

  1. 获取包装组件:connect有一个名为WrappedComponent的静态属性,所以你可以这样得到它:

    const ExtractedComponent = ComponentA.WrappedComponent;
    
  2. 模拟函数和道具,并将其像普通道具一样传递到提取的组件中:

    const wrapper = mount(<ExtractedComponent connectFunctionA={mockA} ... />);
    
  3. 像普通组件一样测试它! :)