Angular2-Tests: Was ist der Unterschied zwischen einem DebugElement und ein NativeElement Objekt in einem ComponentFixture?

Ich bin derzeit die Zusammenstellung von best practices für das testen Eckig 2 apps auf Komponenten-Ebene.

Ich habe gesehen, ein paar tutorials Abfrage einer Halterung der NativeElement Objekt für Selektoren und dergleichen, z.B.

HTML:

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!');
    });
}));

Jedoch in juliemr ist Eckig 2-test Saatgut Sie greift auf die NativeElement durch ein Elternteil DebugElement Objekt.

HTML:

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!');
    });
}));

Gibt es bestimmte Fälle, die Sie verwenden würden, eine Vorrichtung, die debugElement.nativeElement über seine nativeElement?

InformationsquelleAutor dgkane | 2016-06-08
Schreibe einen Kommentar