testet die Router-Ausgangskomponente in angular2

8

Ich habe eine homecomponent wo das html ist

// home.component.html

%Vor%

// home.component.ts

%Vor%

// home.component.spec.ts

%Vor%

Ich erhalte den folgenden Fehler

%Vor%

Was ist der Fehler, den ich mache?

Vielen Dank im Voraus

    
mounika20 30.09.2016, 13:30
quelle

2 Antworten

10

Der Fehler liegt daran, dass die <router-outlet> in% der RouterModule 1 nicht in Ihre Testkonfiguration importiert wird.

Wenn Sie kein echtes Real-Routing testen möchten (ich bemerke den falschen Router), können Sie Angular einfach dazu bringen, das <router-outlet> -Element zu ignorieren, indem Sie Folgendes in Ihre Test-Konfiguration einfügen:

%Vor%

Und nur ein Vorschlag. Sie möchten das Verhalten der Komponente testen. Wenn die Komponente erstellt und der Benutzer authentifiziert wird, sollte die Router-Navigationsmethode aufgerufen werden. Also sollten wir testen, dass die navigate-Methode aufgerufen wird. Wie machen wir das? Mit Spies . Sie können einen Spion mit der navigateByUrl -Methode erstellen, dann können Sie mit Jasmine überprüfen, ob diese Methode

genannt wurde %Vor%

AKTUALISIEREN

Jetzt erhalten Sie einen fehlenden Http -Anbieterfehler.

Da% ce_de% auf Ihrem providers:[HomeService] steht, überschreibt es die in der Testmodulkonfiguration (was der Mock ist). Sie sollten die Komponentenanbieter in diesem Fall überschreiben

%Vor%

1 - Zum Testen sollte es eigentlich das @Component sein, wie erwähnt hier

    
Paul Samsotha 30.09.2016 14:23
quelle
0

Wenn Sie das Routing nicht testen möchten, aber die Funktionalität der Komponente testen möchten, können Sie einfach

hinzufügen

%Vor%

Damit kann Ihr Test ausgeführt werden, ohne CUSTOM_ELEMENTS_SCHEMA zu deaktivieren

    
irhetoric 23.06.2017 21:25
quelle