在Redux中测试-现在最好的方法是什么?

在Redux中测试-现在最好的方法是什么?,redux,Redux,我已经读了很多关于Redux测试的书,我看到了两种不同的测试方法。只是想知道现在大家对最好或更好的测试方法的建议是什么。据我所见,更常见的方法是测试您的操作、减缩器和选择器,如Redux文档中的- 然而,在我看来,这些测试更像是在测试实现细节,而不是行为细节。因此,环顾四周后,我发现了一个测试库,它以一种更为行为化的方式编写测试,但似乎不太常见- 如果能听到人们对您现在使用/推荐的方法的反馈,那该多好啊?上下文:我使用的是React本机应用程序,它与web应用程序有一个共享包。在共享套餐中,我拥

我已经读了很多关于Redux测试的书,我看到了两种不同的测试方法。只是想知道现在大家对最好或更好的测试方法的建议是什么。据我所见,更常见的方法是测试您的操作、减缩器和选择器,如Redux文档中的-

然而,在我看来,这些测试更像是在测试实现细节,而不是行为细节。因此,环顾四周后,我发现了一个测试库,它以一种更为行为化的方式编写测试,但似乎不太常见-


如果能听到人们对您现在使用/推荐的方法的反馈,那该多好啊?

上下文:我使用的是React本机应用程序,它与web应用程序有一个共享包。在共享套餐中,我拥有商店(覆盖率超过90%)。这是我的看法


测试Redux:

优点:

  • 测试操作、减缩器和选择器要比反应组件简单得多,因为这只是单元测试
缺点:

  • 动作、减缩器、选择器都有相同的形状,所以有很多样板
  • 测试动作创建者是最糟糕的,因为所有测试看起来都是这样
it('Should create a action of SET SELECTED SUCCESS',()=>{
常数预期动作={
类型:ModuleA\u ActionEnum.SET\u SELECTED\u SUCCESS,
有效载荷:fakeSuccess,
};
expect(moduleA_Actions.setSelectedSuccess(fakeSuccess)).toEqual(expectedAction);
});
小贴士:

  • 用于动作的静态测试(忽略动作的覆盖率)
  • 如果您使用redux saga之类的中间件执行大量请求,请使用(或其他工具,或创建您自己的)以通用形式创建操作和简化程序,并且只测试一次
  • 仅测试减速器和选择器
测试反应组件:

优点:

  • 与其说是样板文件,不如说是组件行为的不同
  • 更有趣
缺点:

  • 很难设置(创建包装器、模拟商店、ThemeProvider…),对于React Native来说更难
  • 有些组件很难测试
结论:

我将测试Redux和React组件。使用工具减少样板文件,减少测试量

对于
redux
文件夹,我将尝试达到90%以上的覆盖率(如果需要,忽略文件)

对于React组件,我将尽可能多地进行测试,但如果需要花费大量时间,请为该组件添加
/@todo添加测试
,并在功能之间的空闲时间对其进行操作(如等待QA)