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