Sebastian Springer MaibornWolff

Beim Testen Ihres API-Service ist vor allem wichtig, dass Sie eine Reihe von Konventionen aufstellen, sodass Ihre Tests stets einen ähnlichen Aufbau aufweisen.

Die Node.js-Plattform erfreut sich mittlerweile einer sehr großen Beliebtheit. Die serverseitige JavaScript-Plattform wird nicht nur für Serveranwendungen, sondern auch für zahlreiche Werkzeuge in der Webentwicklung eingesetzt. Gerade in der Microservices-Welt fasst Node.js zunehmend Fuß, spielt hier sehr häufig eine API-Rolle, aggregiert Informationen von anderen Systemen und spielt so seine volle Stärke aus. Dabei sind geringe Fehlerraten über die gesamte Projektlebenszeit enorm wichtig. Wie Sie Ihr Node.js-API mit Tests absichern können, demonstriert dieser Artikel.

Seit Node.js im Jahr 2009 zum ersten Mal in Erscheinung getreten ist, hat die Plattform viele Änderungen erfahren, ihr Kern jedoch wurde stets klein gehalten. So verwundert es auch nicht, dass Node.js vor allem im Verbund mit anderen Systemen seine Stärke ausspielt. Das liegt einerseits an der Flexibilität von JavaScript, zum anderen an einem riesigen Ökosystem, das sich um Node.js gebildet hat. Das npm-Repository bietet für nahezu jede Problemstellung eine Lösung. Und dennoch genießt JavaScript als Grundlage für geschäftskritische Anwendungen nicht den besten Ruf unter Entwicklern. Gerade diejenigen, die viel in typsicheren Sprachen wie Java entwickeln, vermissen Strukturen und Muster in der Entwicklung. Doch für sämtliche dieser Problemstellungen existieren Lösungen, die Sie in Ihre Node.js-Applikation einbinden können. Allen voran sind hier Tests zu nennen. Mit Unit- und End-to-End-Tests können Sie Ihre Node.js-Applikation so absichern, dass Sie eine geringe Fehlerrate über die gesamte Lebenszeit Ihres Projekts erreichen. Für die Erstellung von Tests in Node.js gibt es mehrere Lösungsansätze und Werkzeuge.

Auf den folgenden Seiten werde ich Ihnen zeigen, wie Sie Ihr Node.js-API mit Tests absichern können. Dafür beginnen wir mit den Grundlagen der Testframeworks und kümmern uns dann um Problemstellungen, mit denen Sie bei der Erstellung von APIs sehr häufig konfrontiert werden. Allen voran sind das der Umgang mit Asynchronität, wie sie beispielsweise bei der Abfrage von Remote-Systemen wie anderen Microservices oder Datenbanken auftritt, und der Umgang mit Abhängigkeiten wie beispielsweise Bibliotheken von Drittanbietern.

Testframeworks für Node

Einer der Hauptgründe für den Erfolg von Node.js ist das npm-Repository mit seinen zahllosen Paketen. Arbeiten Sie an einem API, bei dem Sie ein eher exotisches System anbinden müssen und stellen sich dabei die Frage, ob es für die Verbindung oder ein ähnliches Problem in Node.js bereits eine Lösung gibt, lautet die Antwort meistens ja. Für viele Fälle existiert bereits ein npm-Paket, das Sie nur noch installieren und verwenden müssen. Die größte Schwierigkeit hierbei ist, die richtigen Pakete zu identifizieren und sie zu bewerten. Einige der verfügbaren Pakete werden nicht mehr weiterentwickelt und sind deshalb veraltet, oder die Pakete werden nur von wenigen Nutzern verwendet. Diese und noch einige weitere Kriterien spielen bei der Auswahl von Werkzeugen eine entscheidende Rolle. Auch die Codequalität des Pakets und der Umgang der Entwickler mit Fehlern und Featurewünschen ist von Bedeutung. So lohnt es sich immer, einen Blick auf die npm- und GitHub-Statistiken der jeweiligen Pakete zu werfen. Bei den beiden Testframeworks, die ich Ihnen nun vorstellen werde, müssen Sie sich bei den eben vorgestellten Kriterien keine Sorgen machen. Sowohl Jasmine als auch Mocha gehören gewissermaßen zum Mainstream der JavaScript-Testframeworks, sind schon seit Jahren auf dem Markt etabliert und werden selbst von großen Unternehmen zur Qualitätssicherung von JavaScript-Applikationen eingesetzt.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin Spezial Vol. 13: APIs - "APIs"

Alle Infos zum Heft
579812053Node.js-APIs mit Tests absichern
X
- Gib Deinen Standort ein -
- or -