【问题标题】:Access Angular directive/component instances in Protractor test在量角器测试中访问 Angular 指令/组件实例
【发布时间】:2017-05-29 13:15:26
【问题描述】:

我有一个 Angular 应用程序。在 Angular 单元测试(karma / jasmine)中,我可以通过 ComponentFixture / DebugElement 访问组件实例和指令。

在通过 Protractor 运行 e2e 测试时,这是否也是可能的?

【问题讨论】:

  • 不,E2E 测试的全部意义在于,您可以像用户一样通过浏览器与应用程序进行交互。
  • 这取决于你到底需要什么。有ng.probegetDebugNode 之类的东西,但不清楚你的情况是什么。术语“e2e”可以指真正的端到端/验收测试或(错误地)任何类型的量角器测试——集成、功能等。
  • 我知道,我不应该在“真正的”e2e 测试中这样做。就我而言,我只想使用量角器测试作为“车辆”从我的应用程序中提取一些数据。
  • 我会试试ng.probegetDebugNode,谢谢你的提示!
  • @estus 请提供ng.probehint 作为答案,以便我接受。这正是我正在寻找的。​​span>

标签: angular typescript protractor


【解决方案1】:

getDebugNode(domElement) 可用于在应用程序内部获取debug element,因为它应该从@angular/core 导入。

ng.probe(domElement) 是全局的,可用于获取应用程序外部的调试元素。

组件实例在调试元素上可用debugElement.componentInstance。至于指令实例和其他提供者,可以使用debugElement.injector(SomeClass) 来访问它们,如this answer 中所述。

【讨论】:

    猜你喜欢
    • 2014-01-04
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2013-12-10
    • 2020-05-30
    • 2021-09-28
    • 2019-03-01
    相关资源
    最近更新 更多