Ich bin mit aktivierten Route Route Datenänderungen zu hören:Mock ActivatedRoute Objekt in Angular2
this.activatedRoute.params.subscribe(params => {
this.model.load(params['id']);
});
In meinem Unit-Test ich diesen Teil verspotten will this.activatedRoute.params.subscribe
Testdaten zur Verfügung zu stellen:
mockActivatedRoute.params = jasmine.createSpy('mockActivatedRoute.params')
.and
.returnValue(Observable.of(<Params>{id: 1}));
Aber ich erhalte einen Fehler:
Type 'Spy' is not assignable to type 'Observable'. Property '_isScalar' is missing in type 'Spy'
Was bedeutet dieser Fehler? Ich benutze ähnliche Ansätze für andere Beobachter und alles funktioniert gut, aber nur diesen Ort.
Sie könnten stattdessen 'ActivatedRoute' Stummel. Übergeben Sie in Ihrem Komponententest einen Stub anstelle der tatsächlichen Klasse "ActivatedRoute". Erstellen Sie eine "params" -Eigenschaft auf Ihrem Stub, die eine Observable des gewünschten Werts zurückgibt. – AngularChef
Bleib bei deiner Syntax, ich denke, es sollte 'jasmine.createSpy ('params')' sein. – AngularChef
@ AngularFrance, es ist nur Spionenname. Ja, ich kann Stub übergeben, aber ich brauche mehr Code, um andere Teile dieser Objekte auszuspionieren. In meinem Fall besser, tatsächlich zu verwenden. – VadimB