2016-12-12 37 views
0

所以文档建议使用模拟商店,但它只是记录所有的行为,并没有连接到任何reducer。我基本上只想测试一个组件,并看到给定的动作已经发出,它发生了变化 - 类似于(用最一般的方式来描述):单元测试在redux

expect(counter.props).to.equal (1)
讯(增量())
预期(counter.props).to.equal(2)

什么想法?谢谢

回答

0

这里涉及到几个因素。

首先,即使在正常的渲染和使用情况下,调度动作也不会立即更新组件的道具。在调度动作后立即通知connect生成的包装组件,但实际重新渲染包装组件通常会被批处理并由React排队。所以,在一条线上派发一个动作将不会反映在下一行的道具上。其次,理想的“平原”组件实际上不应该知道任何有关Redux本身的内容。它只是知道它获取了一些数据作为道具,并且当点击按钮等事件发生时,会调用一些函数作为道具。因此,测试组件应该独立于与Redux相关的任何测试。

如果有帮助,我有一大堆React and Redux-related testing作为我的React/Redux links list的一部分。其中一些文章可能会给你一些想法。

+0

另外,''connect'的react-redux中的很多测试都足够写入测试的起点。 –

+0

谢谢,那么推荐的方法是什么?我正在考虑单元测试我的组件是不是愚蠢的 - 还原 - 不知道 - 仅支持并单独测试我的状态转换与redurs单元测试? – user3139602