ng-mocks:什么是“.point”?

问题描述 投票:0回答:1

我在文档中看到了这段代码:

const fixture = MockRender(TargetComponent);
expect(fixture.point.componentInstance).toBeDefined();

但我注意到,我们也可以做

fixture.componentInstance
,所以没有意义。我搜索了文档但没有找到答案。 “.point”到底有什么作用?什么时候该用,什么时候不该用?

angular mocking jasmine ng-mocks
1个回答
0
投票

Angular 测试中的

.point
属性指的是包裹组件的
DebugElement

debugElement
提供对组件模板内的组件、指令和元素的访问。

因此

fixture.point
返回
DebugElement
,而
fixture.componentInstance
返回实际组件实例。

一些主要区别:

  • fixture.point
    允许您使用
    .query()
    .queryAll()
    等查询模板中的元素,但您不能使用
    fixture.componentInstance
    来执行此操作。
  • fixture.componentInstance
    允许您直接访问组件类上的方法、属性和其他内容。

何时使用

.point

  • 当您需要测试组件模板中的元素时。例如 - 查找要单击的按钮元素。
  • 当您需要访问模板中的指令时。

何时直接使用

.componentInstance

  • 测试组件类的方法或属性时。
  • 当您不需要访问模板而只想访问组件实例时。

总结一下:

  • 当您需要访问模板或指令时,请使用
    .point
  • 直接测试组件类成员时使用
    .componentInstace

我希望这对你有帮助。如果您需要更多说明,请告诉我。干杯🥂

© www.soinside.com 2019 - 2024. All rights reserved.