【发布时间】:2017-10-02 22:27:54
【问题描述】:
我正在向我管理的 Ionic 2.2.0 应用程序添加单元测试,但我的组件在测试时遇到 Google Analytics 代码时崩溃。我使用Ionic's official unit testing example 作为基础,my current progress can be seen on our public repo。
我的项目使用 Google Analytics,它被添加到 HTML 中并在运行时下载(因为我们有不同的开发密钥和生产密钥)。
初始化 Analytics 的代码在我的main.ts 中,它设置了一个全局变量ga,随后可在整个应用程序中使用。
我正在开始测试应用的第一页,它使用 Analytics。当我运行测试时,我遇到了以下错误
组件创建失败
ReferenceError: ga 未定义
在新的
MyBusesComponent(webpack:///src/pages/my-buses/my-buses.component.ts:33:6在新的 Wrapper_MyBusesComponent (/DynamicTestModule/MyBusesComponent/wrapper.ngfactory.js:7:18)
在 CompiledTemplate.proxyViewClass.View_MyBusesComponent_Host0.createInternal (/DynamicTestModule/MyBusesComponent/host.ngfactory.js:15:32)
........
这是因为 main.ts 似乎没有被加载或执行,我认为 TestBed 是故意这样做的。我没有有实际的 Google Analytics 对象当然更好,但是组件确实需要一个名为 ga 的函数。
因此,我的问题如下:如何在我的测试配置中创建 Google Analytics 的 ga 变量,以便在测试时将其传递给我的组件?
我尝试从我的mocks 文件中导出一个函数并将其添加到我的规范文件中的imports 或providers 数组中,但无济于事。
感谢任何建议!请随时在我上面链接的仓库中检查我的代码,并询问您需要的任何后续行动。谢谢!
【问题讨论】:
标签: unit-testing ionic-framework google-analytics ionic2 karma-jasmine