测试反应组件策略

时间:2016-10-22 14:30:23

标签: javascript unit-testing testing reactjs

在单元测试中测试React组件的最佳方法是什么?

第一个问题是装饰器(或HOC)。我们不想测试它们,但是如果没有它们,很难深入测试它如何作为组件工作;但是为了使它们工作,我们必须模拟所有供应商链(在我们的情况下是~3个组件,加上上下文等),而且,从我的角度来看,它太脆弱了。

下一个问题是关于组件内部的逻辑。我知道,有很多文章都有很酷的建议,比如“不要在组件中使用逻辑”,但我们经常需要保持本地状态(如横幅等)。是应该只使用shallowMount进行测试,还是不花费它?生命周期方法,如果我们开始检查它,是不是它使我们的测试太脆弱而且太多了解实现?

最后一个问题是关于标记。我们应该检查React组件内的任何内容吗?我阅读了各种各样的教程,我认为按标签查找是有史以来最糟糕的例子(我甚至不想在这里详细介绍)。对我来说,Jest快照功能似乎也不是一个好选择(我也看到了同样的问题)。我看到的内容可能会有所帮助 - 只需检查传递差异道具时是否呈现不同的组件(例如分别为LoaderOffer),但有时它们是某个容器本身的子项,并且shallowRendering不起作用,这将我们带回到初始点。

总而言之,我认为只有两点:

  1. 测试内部状态的逻辑(调用方法并查看新状态)
  2. 查看根据道具渲染的组件的渲染。
  3. 第二点可能非常难(因为嵌套的孩子很深),所以现在我倾向于只渲染一个组件(检查它没有失败 - 以浅层方式),并通过调用方法检查逻辑检查后的状态。

    你的策略是什么?

0 个答案:

没有答案