angular - 在 Angular 6 测试中修改全局窗口变量
问题描述
我正在尝试使用 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 文件中设置它。我宁愿不要为了测试目的而改变它的内容。
如果有人知道如何在应用程序完全初始化之前获取窗口对象,我将不胜感激。我已经花了整整三天的时间,仍然没有解决方案......
谢谢!
解决方案
推荐阅读
- python - 从 jupyter notebook 内部更新 seaborn
- python - 自定义选项卡中的 Django 管理员 StackedInline
- python - 具有多个标题的文件到带有融化的数据框
- vba - Access VBA 在两个数据库之间传输数据
- python - 无法为我的 LP 创建可用的字典
- algorithm - 二次时间顶点覆盖验证
- function - 将上月期末余额设置为下个月期初余额:Power Query M 功能
- php - 最大执行超时 30 秒/Mbstring 错误 Laravel 6*
- c++ - cv::Mat::at 和 cv::minMaxLoc 函数之间的差异
- mxgraph - 制作滚动条如何在 mxgraph 中工作