2016-08-12 3 views
0

Ich versuche, einige Komponententests für Angular 2.0-Komponenten einzurichten. Während die Dokumentation auf der Angular 2.0-Website Informationen für allgemeine Unit-Tests mit Jasmine enthält, gibt es nichts komponentenspezifisches - allerdings habe ich einige Artikel gefunden (zB https://medium.com/google-developer-experts/angular-2-unit-testing-with-jasmine-defe20421584), die mit "angular2/testing" referenzieren, um die Abhängigkeit zu erleichtern Injektions- und Komponententests.Wie testen Sie Komponenten in Angular 2.0?

jedoch die letzte Referenz ich dazu finden sich auf der Beta ist, nicht einer der neueren RC-Versionen: https://code.angularjs.org/2.0.0-beta.9/testing.dev.js

Wer weiß, ob dies noch die richtigen oder bevorzugt arbeitet als Art und Weise unter Verwendung von Komponententests in Angular 2.0 durchführen?

Bearbeiten: Um zu klären, ich bin einfach auf der Suche nach einer Methode, um Komponenten zu testen, die funktioniert, und ich habe meine Frage oben aktualisiert, um dies zu reflektieren.

Edit 2: Es sieht aus wie der TestComponentBuilder (angular.io/docs/ts/latest/api/core/testing/TestComponentBuilder-class.html) passt, was ich suche, aber es ist veraltet.

Antwort

0

mit kantigem 2 rc.5, versuchen Sie dies aus (in diesem Beispiel verwendet TestBed):

import { provide } from '@angular/core'; 
import { async, TestBed } from '@angular/core/testing'; 

import { SomeComponent } from './some.component'; 

beforeEach(() => { 
    TestBed.configureTestingModule({ 
    declarations: [ 
     SomeComponent 
    ], 
    providers: [ 
     SomeComponent, 
     // ServiceA, 
     // provide(ServiceB, { useClass: TestServiceB }) 
    ], 
    imports: [ 
     // HttpModule, 
     // etc. 
    ] 
    }); 
}); 

it('should do something', async(() => { 
    // Overrides here, if you need them: 
    TestBed.overrideComponent(SomeComponent, { 
    set: { 
     template: '<div>Overridden template here</div>' 
     // ... 
    } 
    }); 

    TestBed.compileComponents().then(() => { 
    const fixture = TestBed.createComponent(SomeComponent); 

    // Access the dependency injected component instance: 
    const app = fixture.componentInstance; 

    // Access the element 
    const element = fixture.nativeElement; 

    // Detect changes to wire up the `fixture.nativeElement` as necessary: 
    fixture.detectChanges(); 

    expect(app.something).toBe('something'); 
    }); 
})); 
Verwandte Themen