【发布时间】:2017-04-17 04:08:39
【问题描述】:
我正在测试如下组件
@Component({
selector: 'my-component',
template: `
<my-nested-component [state]="state"></my-nested-component>
`,
encapsulation: ViewEncapsulation.Native
})
export class MyComponent {}
在对我的组件进行单元测试时,我想获得对嵌套组件MyOtherComponent 的引用。如果my-component 没有使用封装,或者如果它使用仿真封装,我可以使用:
let fixture = TestBed.createComponent(MyComponent);
let nestedComponent = fixture.debugElement.query(By.directive(MyNestedComponent))
获取对组件的引用。
但在这种情况下,query 只是查询组件的轻量级 DOM 子项(模仿 querySelector 的行为),因此在使用原生视图封装时,nestedComponent 是 null。
您应该如何获得对嵌套组件的DebugElement(以及组件实例)的引用?
【问题讨论】:
标签: unit-testing angular typescript shadow-dom