我有限数量的测试似乎表明答案是否定的。我正在为依赖于商店的父级 React 组件(又名控制器视图)编写单元测试。然而,Jest 并没有像文档建议的那样为商店提供自动模拟,而是调用真正的实现。
这是一个错误还是设计使然?如果是后者,那么单元测试反应组件是否不可取?
编辑 1
在测试 CommonJs 模块时,Automocking 工作得很好;它只是不适用于反应组件。
听起来您的测试是集成测试而不是单元测试。Jest 嘲笑一切,因为它主要用于单元测试。我与您分享帮助我简化和加快单元测试的模式。
提取执行逻辑的方法,例如。映射、过滤等到不同文件中的 Utils 模块。然后测试 Utils 模块而不是 React 组件。这样可以降低测试的复杂性。
这同样适用于商店...尝试运行 Utils 模块中的所有逻辑。为 getter 和 setter 留下自己的方法。
使用 KeyMirror 管理常量时,很容易忘记 unMock 这个模块。商店通常为 ActionTypes 使用很多常量。
Dispatcher 依赖项和 EventEmitter 也是如此。