Ich habe versucht, einige Serviceaufrufe zu verspotten, die Observable in meiner Angular-App zurückgeben, aber ich kann einfach keine gültige Observable erstellen, die Aufrufe wie catch()
oder map()
in meinem Code auslöst. Zum Beispiel:
Mein Service:
%Vor%Meine Angabe:
%Vor% Die Coverage-Analyse sagt mir, dass die Methode handleError
noch nie ausgeführt wurde. Im Fall einer erfolgreichen Observablen wird auch nicht die Methode extractData
durchlaufen.
Wohin soll das Observable gehen? Wie kann ich eine geeignete Observable zurückgeben, um solche Anrufe zu testen?
Es gibt zwei Möglichkeiten, dies zu erreichen.
Zuerst würde in Ihrer Service-Methode Folgendes verwendet:
%Vor%Die zweite Methode wäre, rufen Sie den Dienst wie folgt auf:
%Vor%Wenn Sie die Service-Methode aufrufen, verwenden Sie Folgendes:
%Vor% Die Methode, die Sie zum Extrahieren von Daten verwenden, this.extractData()
, kann anstelle von res.json()
im Service aufgerufen werden, aber insgesamt ist es das gleiche Ergebnis.
Hoffe das hilft:)
Sie müssen zuerst mockData erstellen, damit der Service sie nutzen kann. Es gibt 2 Dateien darunter. Fügen Sie Ihren Komponenten- und Servicenamen anstelle von COMPONENT_NAME & amp; SERVICE_NAME jeweils.
Spezifikationsdatei ts
%Vor%Sie müssen das Verzeichnis testHelper (oder einen beliebigen Namen) im Stammverzeichnis
erstellenserviceMockData ts
%Vor%Tags und Links angular