Wie kann ich ein mock Beobachten.werfen Sie in ein Angular2 test?
Möchte ich zum test der Fehlerbehandlung in mein Angular2 Komponente und wollen deshalb zu verspotten, einen Dienst zu schicken, zu Beobachten.throw ("Fehler"). Wie geht das mit Jasmine und Karma und Winkel 2?
- können Sie uns ein code-Beispiel? hinzufügen eines Kontext auf Ihre Frage ein, erlauben uns eine präzise Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie
create
eine beobachtbare, und rufen Sie den Beobachtererror
. Zum BeispielNun für Ihre tests verwenden, können Sie die verspotten, die für Erfolg Fällen und Fehlern. Für die ein-Fehler-Fall, setzen Sie einfach die
error
- Eigenschaft auf true. Im Erfolgs Fallnext
wird aufgerufen mit den Daten.Wenn Sie abonnieren, um eine beobachtbare, können Sie passieren drei callback
success
,error
, undcomplete
Also mit der
observer
beim Aufrufobserver.next
,observer.error
,observer.complete
, wird der entsprechende callback wird aufgerufen.Hier ist meine Lösung für diejenigen, die sich mit Rxjs 6
let mockService = { getData: of({data:'any data'})}; spyOn(mockService , 'getData').and.returnValue(throwError(ERROR_RESPONSE))
Können Sie einfach mock
Observable
und werfen Fehler-Objekt mitObservable.throw({status: 404})
- und test-Fehler-block zu beobachten.Hier bin ich werfen
http 404
Fehler vonObservable.throw({status: 404})
durch SpottxMethod
vonxSerive
in meinem test.Observable.throw
geändert, um den static-operatorthrowError
.RxJs 6+
Sie nicht importieren, das ganze zu beobachten, tun Sie nur mitthrow()