2017-08-15 22 views
0

我想浅测试我的组件,并且我知道浅测试只测试一个深度。我的问题是,我收到警告是因为我的组件需要由mapStateToProps和mapDispatchToProps收到的道具。这让我想知道如何正确地将这些道具发送到我的浅呈现组件,而不会重复方法。 我使用笑话和酶。浅测试组件,抱怨从mapStateToProps和mapDispatchToProps得到所需道具

+0

如果您有清晰的演示文稿/容器分离,您可以轻松地单独测试演示文稿组件(在这种情况下,我假设所有动作都可以是简单的模拟函数)。将一些代码添加到问题中。 –

回答

2

让我们把你的组件ComponentA包裹在HOC的阵营 - 终极版(假设你正在使用它,因为你的问题是mapStateToPropsmapDispatchToPropsconnect。 用于测试该组件的传统方法是:

  1. 获取包裹的组件:connect有一个名为WrappedComponent静态属性,所以你把它弄出来是这样的:

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

    const wrapper = mount(<ExtractedComponent connectFunctionA={mockA} ... />); 
    
  3. 测试它像正常的组件! :)