Moderne Webanwendungen mit Node.js und Express.js

REST API testen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auch REST-Schnittstellen können wie andere Aspekte der Anwendung mit definierten Tests validiert werden.

Transkript

Wie jede andere Anwendungskomponente sollte auch eine REST-API ausführlich getestet werden. Auch beim Testen einer REST-API kann man auf das vorhandene Wissen mit Mocha & Chai zurückgreifen. Was man noch alles dazulernen muss, zeige ich Ihnen im Laufe dieses Videos. Um REST-APIs zu testen, benötige ich eine zusätzliche Abhängigkeit. Diese installiere ich mit dem Befehl "npm.install", die Bezeichnung in dem Fall ist "restler", und ich speichere die Abhängigkeit unter den Abhängigkeiten für die Entwicklungsumgebung. Als nächstes überprüfe ich noch, welche API-Endpunkte ich testen möchte. Das ist zum einen die Liste aller Posts, die Liste eines spezifischen Posts und das Auflisten eines spezifischen Posts, als auch einen Kommentar für einen bestimmten Post hinzuzufügen. Ich erstelle also nun einen Test-Case, bezeichne ihn als "apiTest.js" und als erstes spezifiere ich darin die Abhängigkeit zu restler und zur "assert"-Funktion von Chai. Um mich nicht ständig zu wiederholen, definiere ich einmalig die Basis-URL der Webseite und der dort befindlichen API und dann nur noch entsprechende Endpunkte wie Posts und dergleichen anzugeben. Um später nach einem bestimmten Eintrag zu suchen, definiere ich ein Beispiel, das auf jeden Fall in der Datenbank vorhanden sein muss. Wie gewohnt definiere ich nun eine TestSuite und drei Tests, die den jeweiligen Endpunkten entsprechen: Alle Posts abrufen, einen bestimmten Post abrufen, ein Kommentar hinzufügen und schauen, ob dieser Kommentar vorhanden ist. Man beachte an dieser Stelle, dass in jedem Fall hier ein Objekt mit der Bezeichnung "done" als Parameter in den Test hineinläuft. Dieser ermöglicht es bei asynchronen Aufrufen den Test-Framework Mocha zu bestätigen, dass die Anfrage funktioniert hat. Ich definiere also nun den ersten Post mit einem Aufruf von restler, der Get-Methode, der Basis-URL und Slash-Posts. Mit dem Aufruf der Methode On stelle ich sicher, dass immer dann wenn ein erfolgreicher Aufruf stattgefunden hat, meine Funktion mit der Antwort aus diesem Aufruf aufgerufen wird. In diesem Fall prüfe ich also, ob wirklich mehr als null Einträge zurückgeliefert werden, ist das der Fall, bestätige ich nun den Test-Case mit der Done-Funktion. In allen anderen Fällen, wo beispielsweise dieser Aufruf keinen Erfolg hat, wird die Done-Funktion nicht aufgerufen und der Test-Case schlägt fehl. Analog ist das Vorgehen, wenn ich einen bestimmten Post abrufe. Ich suche nun nach dem Post mit der Nummer Eins. Wenn ich diesen erhalte, vergleiche ich den Inhalt der Antwort im Title mit meinem Beispiel. Sind beide gleich, ist mein Post tatsächlich auf der Nummer Eins. Beim Hinzufügen eines Kommentars wird es etwas komplizierter, denn ich möchte zum einen einen individuellen Kommentar hinzufügen und zum anderen diesen wieder finden. Dazu definiere ich mir zunächst einmal eine Hilfsfunktion, mit der ich in der Lage bin, einen Zufallstext zu generieren. Dieser hat fünf Buchstaben und wird genutzt, um das Kommentarfeld auszufüllen. Ich generiere also initial einen Text, den ich dann als Kommentar über die API speichere. War das erfolgreich, überprüfe ich, ob auch die Statusrückmeldung "okay" aussagt. Als nächstes rufe ich nun diesen Post ab und überprüfe, ob ich mein Kommentar wiederfinden kann. Finde ich mein Kommentar, bestätige ich den Aufruf mit "done" und verlasse die Funktion. Finde ich den Kommentar nicht, sorge ich dafür, dass der Test-Case mit Sicherheit fehlschlägt. Als nächstes starte ich also meinen Server und den entsprechenden Test-Case im Ordner "tests" mit dem Aufruf von Mocha, Test Driven Development, Specification und apiTest.js. Wenn alles gut geht, sind alle drei Testfälle erfolgreich abgeschlossen. Ich habe also mit der Hilfe der mir bereits bekannten Frameworks, Mocha und Chai und zusätzlich restler HTTP Anfragen gegen meine REST-API geschickt. Die Test-Cases konnte ich so für die Funktion aller Endpunkte spezifizieren und auch für kompliziertere Zusammenhänge, wie beispielsweise einen Kommentar hinzuzufügen, war es ohne Probleme möglich, diesen Zusammenhang herzustellen.

Moderne Webanwendungen mit Node.js und Express.js

Entwickeln Sie auf der Open-Source-Plattform Node.js kompakte und performante Webapplikationen und lernen Sie weiterführende Konzepte professioneller Webentwicklung kennen.

2 Std. 20 min (24 Videos)
Derzeit sind keine Feedbacks vorhanden...
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:23.03.2015
Laufzeit:2 Std. 20 min (24 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!