Mocking router.events.subscribe () Angular2

n meiner app.component.ts habe ich die folgende ngOnInit-Funktion:

ngOnInit() {
    this.sub = this.router.events.subscribe(e => {
      if (e instanceof NavigationEnd) {
        if (!e.url.includes('login')) {
          this.loggedIn = true;
        } else {
          this.loggedIn = false;
        }
      }
    });
  }

Zurzeit teste ich, ob das Sub nicht null ist, aber ich möchte die Funktion mit einer 100% igen Abdeckung testen.

Ich möchte das Router-Objekt verspotten, damit ich die URL simulieren und dann testen kann, ob this.loggedIn richtig eingestellt ist.

Wie würde ich fortfahren, um diese Funktion zu verspotten? Ich habe es versucht, aber ich weiß nicht, wie ich das mit dem Rückruf und mit dem NavigationEnd aufnehmen soll.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage