在我们的 React/TypeScript 应用程序中,我们使用 segment.com 跟踪分析,我们使用 jest 进行单元测试。
index.html 中的 segment.com 片段添加了一个分析对象,我们可以在代码中的任何地方使用它,并且提供了类型。
在我们的一项测试中,代码执行调用analytics.track("navigate")
并崩溃,因为未定义分析。
我研究了模拟模块或分配具有存根实现的对象的选项。分配一个对象很丑,因为我还需要将模拟分配给其他 19 个方法。测试或真实代码不需要该模块,并且导入它以便开玩笑可以模拟它被证明是痛苦的。
模拟analytics.track()
测试方法的最简单方法是什么?