我目前正在整合一些最佳实践,以便在组件级别上测试 Angular 2应用程序。
我看到过一些教程查询 fixture 的 NativeElement 对象以获得选择器之类的东西,例如。
it('should render "Hello World!" after click', async(() => {
builder.createAsync(HelloWorld).then((fixture: ComponentFixture<HelloWorld>) => {
fixture.detectChanges();
let el = fixture.nativeElement;
el.querySelector('h1').click();
fixture.detectChanges();
expect(el.querySelector('h1')).toHaveText('Hello World!');
});
}));
但是,在 朱利叶尔角2试验种子中,她通过父 DebugElement 对象访问 NativeElement。
it('should render "Hello World!" after click', async(() => {
builder.createAsync(HelloWorld).then((fixture: ComponentFixture<HelloWorld>) => {
fixture.detectChanges();
let compiled = fixture.debugElement.nativeElement;
compiled.querySelector('h1').click();
fixture.detectChanges();
expect(compiled.querySelector('h1')).toHaveText('Hello World!');
});
}));
有没有什么特定的情况下,您会使用 fixture 的 deguElement.nativeElement 来代替它的 nativeElement?