Angular2 - Testen von ngOninit in Komponenten

8

Ich habe eine Listing-Komponente mit folgendem Code:

%Vor%

Ich möchte Komponententests für den ngOninit -Hook schreiben. Ich habe folgenden Test geschrieben:

%Vor%

Die Ausgabe von console.log im Test ist jedoch ein leeres ul -Tag wie folgt:

%Vor%

Kann mir jemand den richtigen Weg vorschlagen, Komponententests für Komponentenhaken zu schreiben?

LÖSUNG

Mock die HTTP-Anfrage im Block injectAsync wie folgt:

%Vor%

Aber jetzt bekomme ich einen weiteren Fehler wie folgt:

%Vor%     
abhinavmsra 17.04.2016, 15:28
quelle

1 Antwort

3

Wenn Sie asynchronen Code in ngOnInit() aufrufen, können Sie nicht davon ausgehen, dass er abgeschlossen ist, wenn console.log(...) ausgeführt wird. this.employees wird nur gesetzt, wenn der Rückruf, den Sie an subscribe(...) übergeben haben, nach dem Eintreffen der Antwort aufgerufen wird.

Wenn Sie MockBackend verwenden, können Sie die Antwort steuern und nachdem die Antwort übergeben wurde, müssen Sie% co_de ausführen Um die Komponente erneut mit den aktualisierten Daten rendern zu lassen, können Sie fixture.detectChanges() lesen und erwarten, dass sie den gerenderten Inhalt enthält.

    
Günter Zöchbauer 17.04.2016 15:34
quelle