© saicle/Shutterstock.com
PHP Magazin
Schnittstellen von Node-Applikationen effizient testen mit Supertest

Node.js-Module: Supertest

Die leichtgewichtige Bibliothek Supertest bietet Hilfe bei der Formulierung von Schnittstellentests für eine Node-Applikation. Sie erlaubt Zugriff auf alle Elemente der Anfrage und der Antwort des Servers. Außerdem lässt sie sich komfortabel mit anderen Test-Frameworks wie Koa, Jest oder Express kombinieren, um den API-Layer Ihrer Applikation ohne großen Aufwand abzusichern.

Sebastian Springer


Eines der häufigsten Einsatzgebiete von Node.js ist die Implementierung von Web-Backends. Das legen allein schon die Downloadzahlen von Paketen wie Express nahe, die mittlerweile die Marke von zehn Millionen pro Woche geknackt haben. Express basiert auf dem HTTP-Paket von Node und erweitert es um Routingfunktionalität sowie um ein Plug-in-System, das als Middleware-Layer bezeichnet wird. Je wichtiger eine solche Express-Applikation für ein Unternehmen ist, desto größer wird auch die Notwendigkeit, eine Applikation zu testen. Durch die Vielzahl von Test-Frameworks sollte die automatisierte Überprüfung solcher Applikationen mittlerweile kein Problem mehr darstellen. Und trotzdem gibt es noch eine viel zu große Zahl von Applikationen, die nach wie vor ungetestet ist. In diesem Artikel möchte ich Ihnen mit Supertest eine Bibliothek vorstellen, die es Ihnen erlaubt, die Schnittstellen Ihrer Applikation mit überschaubarem Aufwand zu testen.

Ursprünglich wurde Supertest von TJ Holowaychuk entwickelt, dem Entwickler, der auch hinter Express und zahlreichen weiteren Bibliotheken steht. Die Ursprünge von Supertest gehen bis zum Juni 2012 zurück. Mittlerweile ist etwas Ruhe in die Entwicklung der Bibliothek eingekehrt und es laufen nur noch vereinzelte Commits ins Repository. Dennoch wird es aktiv maintaint und hat ein stabiles API. Das bedeutet, dass einem Einsatz in einer Applikation nichts im Weg steht. Supertest basiert auf der Bibliothek Superagent, die asynchrone Requests für JavaScript-Applikationen ermöglicht. Superagent kann sowohl im Browser als auch in Node verwendet werden. Auch Superagent wurde von TJ Holowaychuck entwickelt. Hier liegt der initiale Commit sogar noch länger zurück (August 2011). Superagent wird in Supertest zur Formulierung der Anfragen gegen die Schnittstelle Ihrer Applikation verwendet. In Ihren Tests können Sie auf den gesamten Funktionsumfang von Superagent zurückgreifen und haben sämtliche Aspekte der Anfrage unter Ihrer Kontrolle.

Wie nahezu alle Bibliotheken in der JavaScript-Welt wird auch Supertest auf GitHub maintaint und ist als npm-Paket verfügbar. Installiert wird Supertest mit dem Kommando npm install -D supertest. Da es sich bei der Bibliothek um ein Testwerkzeug handelt, installieren Sie es als devDependency, die in der Regel nicht mit in die Produktivapplikation einfließt.

Ein erster Test

Mit Abstand am häufigsten wird Supertest mit Express verwendet, Sie können die Bibliothek jedoch nicht nur mit diesem Framework, sonder...

PHP Magazin
Schnittstellen von Node-Applikationen effizient testen mit Supertest

Node.js-Module: Supertest

Die leichtgewichtige Bibliothek Supertest bietet Hilfe bei der Formulierung von Schnittstellentests für eine Node-Applikation. Sie erlaubt Zugriff auf alle Elemente der Anfrage und der Antwort des Servers. Außerdem lässt sie sich komfortabel mit anderen Test-Frameworks wie Koa, Jest oder Express kombinieren, um den API-Layer Ihrer Applikation ohne großen Aufwand abzusichern.

Sebastian Springer


Eines der häufigsten Einsatzgebiete von Node.js ist die Implementierung von Web-Backends. Das legen allein schon die Downloadzahlen von Paketen wie Express nahe, die mittlerweile die Marke von zehn Millionen pro Woche geknackt haben. Express basiert auf dem HTTP-Paket von Node und erweitert es um Routingfunktionalität sowie um ein Plug-in-System, das als Middleware-Layer bezeichnet wird. Je wichtiger eine solche Express-Applikation für ein Unternehmen ist, desto größer wird auch die Notwendigkeit, eine Applikation zu testen. Durch die Vielzahl von Test-Frameworks sollte die automatisierte Überprüfung solcher Applikationen mittlerweile kein Problem mehr darstellen. Und trotzdem gibt es noch eine viel zu große Zahl von Applikationen, die nach wie vor ungetestet ist. In diesem Artikel möchte ich Ihnen mit Supertest eine Bibliothek vorstellen, die es Ihnen erlaubt, die Schnittstellen Ihrer Applikation mit überschaubarem Aufwand zu testen.

Ursprünglich wurde Supertest von TJ Holowaychuk entwickelt, dem Entwickler, der auch hinter Express und zahlreichen weiteren Bibliotheken steht. Die Ursprünge von Supertest gehen bis zum Juni 2012 zurück. Mittlerweile ist etwas Ruhe in die Entwicklung der Bibliothek eingekehrt und es laufen nur noch vereinzelte Commits ins Repository. Dennoch wird es aktiv maintaint und hat ein stabiles API. Das bedeutet, dass einem Einsatz in einer Applikation nichts im Weg steht. Supertest basiert auf der Bibliothek Superagent, die asynchrone Requests für JavaScript-Applikationen ermöglicht. Superagent kann sowohl im Browser als auch in Node verwendet werden. Auch Superagent wurde von TJ Holowaychuck entwickelt. Hier liegt der initiale Commit sogar noch länger zurück (August 2011). Superagent wird in Supertest zur Formulierung der Anfragen gegen die Schnittstelle Ihrer Applikation verwendet. In Ihren Tests können Sie auf den gesamten Funktionsumfang von Superagent zurückgreifen und haben sämtliche Aspekte der Anfrage unter Ihrer Kontrolle.

Wie nahezu alle Bibliotheken in der JavaScript-Welt wird auch Supertest auf GitHub maintaint und ist als npm-Paket verfügbar. Installiert wird Supertest mit dem Kommando npm install -D supertest. Da es sich bei der Bibliothek um ein Testwerkzeug handelt, installieren Sie es als devDependency, die in der Regel nicht mit in die Produktivapplikation einfließt.

Ein erster Test

Mit Abstand am häufigsten wird Supertest mit Express verwendet, Sie können die Bibliothek jedoch nicht nur mit diesem Framework, sonder...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang