Reactjs 有没有简单的方法来模拟段';s AnalyticsJS analytics.track()与TypeScript开玩笑?

Reactjs 有没有简单的方法来模拟段';s AnalyticsJS analytics.track()与TypeScript开玩笑?,reactjs,typescript,jestjs,segment-analytics,Reactjs,Typescript,Jestjs,Segment Analytics,在我们的React/TypeScript应用程序中,我们使用segment.com跟踪分析,我们使用jest进行单元测试 index.html中的segment.com代码段添加了一个分析对象,我们可以在代码中的任何地方使用它,并提供了类型 在我们的一个测试中,代码执行调用analytics.track(“导航”)并崩溃,因为没有定义分析 我研究了模拟模块或分配具有存根实现的对象的选项。分配一个对象很难看,因为我还需要将mock分配给其他19个方法。测试或真正的代码不需要该模块,导入该模块以便j

在我们的React/TypeScript应用程序中,我们使用segment.com跟踪分析,我们使用jest进行单元测试

index.html中的segment.com代码段添加了一个分析对象,我们可以在代码中的任何地方使用它,并提供了类型

在我们的一个测试中,代码执行调用
analytics.track(“导航”)
并崩溃,因为没有定义分析

我研究了模拟模块或分配具有存根实现的对象的选项。分配一个对象很难看,因为我还需要将mock分配给其他19个方法。测试或真正的代码不需要该模块,导入该模块以便jest能够模拟该模块是很痛苦的


模拟测试的
analytics.track()
方法的最简单方法是什么?

事实证明有一个简单的单行解决方案。添加
global.analytics={track:jst.fn()强制转换到任何类型都会绕过类型检查,并允许我们提供一个存根实现,以便只对track方法执行测试,从而可以干净地执行测试