在Angular 6测试中修改全局窗口变量

时间:2018-11-15 19:42:32

标签: angular testing protractor initialization e2e-testing

我正在尝试使用e2e和量角器在Angular 6应用程序中测试端到端流程。我有一个将一些JavaScript注入页面的服务,因此我的测试验证了该脚本已附加到DOM。

问题是该服务检查在index.html文件中硬编码的配置对象。为了运行测试,我必须将一个特定的属性设置为false,但是到目前为止,我还没有设法找到一种挂接到应用程序初始化过程的方法。

我可以使用以下代码访问属性:

browser.wait(
  browser.executeScript('return window.Config.local;')
         .then(promise => expect(promise).toBe(false)
), 5000);

但是问题是去哪里打电话!

我花了一些时间使用APP_INITIALIZER,但使它起作用的唯一方法是在app.module.ts文件中进行设置。我宁愿不出于测试目的更改其内容。

如果任何人在应用程序完全初始化之前对如何获取window对象有任何想法,我将非常感激。我已经花了整整三天的时间,仍然没有解决方案...

谢谢!

0 个答案:

没有答案