Angular 组件测试 - 按组件查询
Angular Component testing - query by Component
测试 @Component
的 DOM 表示时,您可以通过其 fixture
查询其嵌套元素
fixture.debugElement.queryAll(By.css('.example'));
您还可以按 @Directive
进行筛选
fixture.debugElement.queryAll(By.directive(RouterLinkDirectiveStub));
现在,假设你有一个内部 @Component
NzButtonComponent
像这样使用
<button nz-button>Example</button>
如何精确查询?没有By.component(...)
.
如果您使用 nativeElement
而不是 debugElement
,则可以通过 CSS 属性 select:
fixture.debugElement.nativeElement.querySelector('[nz-button]') as HTMLButtonElement;
对于多个元素,可以使用 querySelectorAll
方法。
查询类指令
也许你可以使用
fixture.debugElement.query(By.directive(AnyComponent))
它 returns DebugElement
该组件
之所以可行,是因为在 Angular 中,组件在指令
之后继承
测试 @Component
的 DOM 表示时,您可以通过其 fixture
fixture.debugElement.queryAll(By.css('.example'));
您还可以按 @Directive
fixture.debugElement.queryAll(By.directive(RouterLinkDirectiveStub));
现在,假设你有一个内部 @Component
NzButtonComponent
像这样使用
<button nz-button>Example</button>
如何精确查询?没有By.component(...)
.
如果您使用 nativeElement
而不是 debugElement
,则可以通过 CSS 属性 select:
fixture.debugElement.nativeElement.querySelector('[nz-button]') as HTMLButtonElement;
对于多个元素,可以使用 querySelectorAll
方法。
查询类指令
也许你可以使用
fixture.debugElement.query(By.directive(AnyComponent))
它 returns DebugElement
该组件
之所以可行,是因为在 Angular 中,组件在指令
之后继承