2017-02-27 4 views
0

Ich habe mein Projekt mit Angular CLI eingerichtet. Auch ich habe meine Komponenten über "ng g component NAME" erstellt. Dies hat auch automatisch eine Test-Klasse hinzugefügt, um meine Komponententests zu erstellen (was natürlich ziemlich ordentlich ist).Kein Objekt gefunden, wenn Unit-Tests mit Karma in der Angular CLI App ausgeführt werden

Das Problem ist, dass meine Tests hart ausfallen, obwohl ich sie im Ausgangszustand gelassen habe. Ich wollte es testen, bevor ich überhaupt einen Test schrieb. Der Test schlägt jedoch fürchterlich fehl. Keine einzige Zeile wird gut ausgeführt.

> ng test 

'app-some-selector' is not a known element: 
1. If 'app-some-selector' is an Angular component, then verify that it is part of this module. 

Oder zum Beispiel

The pipe 'myPipe' could not be found 

Der obige Fehler für jedes einzelne Objekt in den spezifischen Komponenten geworfen wird. Wenn eine andere Komponente über ihren Selektor verwendet wird, kann die entsprechende Komponente nicht gefunden werden. Wenn ein Dienst wie http durch Dependency Injection verwendet wird, gibt der Compiler an, dass es keinen Provider dafür gibt und so weiter.

Mein Projekt läuft gut mit ng serve BTW.

Antwort

2

Wenn Sie Komponente über Winkel-cli schaffen, schaffen es für Sie

it('should create',() => { 
    expect(component).toBeTruthy(); 
}); 

Dieser erste Test versuchen, eine Komponente zu erstellen und wenn Sie eine dependancie hinzufügen, eine andere Komponente für exemple, es fallen.

Um Vergangenheit dieses Tests müssen Sie die Art und Weise aktualisieren you'r die Komponente in der Testklasse in der beforeEach Funktion erstellen:

beforeEach(async(() => { 
    TestBed.configureTestingModule({ 
     declarations: [ myComponent ], 
     providers: [myService] 
    }) 
    .compileComponents(); 
})); 

hier, wenn ich einen Dienst myService in meiner Komponententest Dependency Injection hinzufügen. Auf diese Weise können Sie ein Objekt als myService einfacher testen, um Ihre Komponente zu testen.

Verwandte Themen