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:
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
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
1 - Zum Testen sollte es eigentlich das @Component
sein, wie erwähnt hier
Tags und Links angular angular2-routing angular2-testing