我有限的测试数量似乎表明答案是否定的。我正在为一个父级React组件(也称为控制器视图)编写一个单元测试,该组件依赖于一个存储。然而,Jest并没有像文档中建议的那样为商店提供自动模拟,而是调用真正的实现。
这是一个bug还是设计出来的?如果是后者,那么单元测试react组件的外卖是不可取的吗?
编辑1
自动锁定在测试CommonJs模块时工作得很好;但它不适用于react组件。
发布于 2015-05-18 02:54:44
听起来你的测试是集成测试,而不是单元测试。Jest模拟一切,因为它主要用于单元测试。我与您分享帮助我简化和加速单元测试的模式。
提取帮助器方法
提取执行逻辑的方法。映射、过滤等到不同文件中的Utils模块。然后测试Utils模块,而不是React组件。这样就降低了测试的复杂性。
同样的道理也适用于商店。尝试运行Utils模块中的所有逻辑。让Stores只有getter和setter的方法。
不要忘了unMock keyMirror和Dispatcher
当使用KeyMirror管理常量时,很容易忘记unMock这个模块。商店通常会为ActionTypes使用很多常量。
Dispatcher依赖项和EventEmitter也是如此。
https://stackoverflow.com/questions/29001703
复制相似问题