Jest
Was im Jahr 1995 als simples Werkzeug zur Überprüfung von Formulareingaben diente, ist heute eine hochkomplexe Programmiersprache: JavaScript. Sie ermöglicht den dynamischen Aufbau und die nutzerspezifische Anpassung moderner Websites. Dass hierfür komplexe Kontrollabfragen nötig sind, versteht sich von selbst. Auch die Verknüpfung mit Datenbanken überrascht nicht. Gleiches gilt für die potenzielle Fehleranfälligkeit. Denn immer dort, wo Komplexes Vorteile bietet, bringt es auch Nachteile. Das smarte Werkzeug Jest aus dem Hause Facebook unterstützt dabei, Letztere bedarfsorientiert zu minimieren.

 

Was ist Jest und profitierst Du davon?

Bei Jest handelt es sich um ein Open Source JavaScript-Test-Framework, das Fehler in der Programmiersprache automatisch erkennen soll. Diese Funktionalität ermöglicht es, auch langfristig die recht offenen Sprachstandards von Webanwendungen einhalten zu können.

Dabei unterstützt das auf Jasmine aufbauende Jest Dienste wie Babel und Node ebenso wie die Frameworks Angular, React und Vue. Klar ist: Das Entwicklerteam hinter dem Werkzeug geht innovative Wege. Der geringe Konfigurationsaufwand bei der Einrichtung von Jest spricht hierfür ebenso.

Und: Einzelne Testaufgaben, Komponenten und Module lassen sich im Rahmen individueller Threads Prüfungen auch von äußerst umfangreichen Codebasen mit sehr hoher Performance meistern. Hierfür gibt Jest Dir als Nutzer eine Vielzahl hilfreicher Tools an die Hand.

 

So funktioniert Jest

Mocking, Snapshots und die Integration von Konfigurationspaketen sowie Namenskonventionen sind drei der wichtigsten Funktionen von Jest. Ersteres ersetzt spezielle Funktionen im Testablauf durch die sogenannten Mocks. Deren Aufrufe lassen sich transparent nachverfolgen, wobei sie für einen erwarteten Output sorgen. Ein Beispiel: Soll ein Benutzer neu angelegt werden, entfällt durch das Mocking das Senden des API-Aufrufs. Der erwartete Output seitens des Servers stellt in diesem Szenario eine Bestätigung oder eine neu generierte User-ID dar.

Snapshots sind gespeicherte Kopien gerenderter Komponenten. Im Rahmen des automatisierten Tests wird erneut eine Kopie erstellt und mit der bereits hinterlegten Version verglichen. Sind sie unterschiedlich, ist der Test fehlgeschlagen. Dank dieser Funktion ist es möglich, ungewollte Änderungen am Status von Webanwendungen zu vermeiden. Tipp: Wenn eine Komponente bewusst geändert wurde, ist ein Upgrade der hinterlegten Kopie nötig.

Ein weiteres wertvolles Feature von Jest sind die gebotenen Namenskonventionen und die Implementierung von Konfigurationspaketen. Sie lassen komplizierte Konfigurationen überflüssig werden: Beim Test werden Ordner nach den von Jest ausgegebenen Datei-Typen durchsucht. Diese werden nun ausgeführt, wodurch das Open Source JavaScript-Test-Framework mit jedem Projekt kombinierbar ist.

 

Kosten und Lizenzen für die Nutzung von Jest

React-Erfinder Facebook gelingt mit Jest ein weiterer Meilenstein für die Erstellung von Unit-Tests im JavaScript-Code. Dabei läuft das Werkzeug unter der MIT-Lizenz und ist als Open Source Framework erhältlich.

 

Vor- und Nachteile von diesem Werkzeug

Vorteile

  • Einfache Bedienbarkeit
  • Open Source Verfügbarkeit
  • Innovative Idee aus dem Hause Facebook
  • Kombinierbar mit sämtlichen Webanwendungen
  • Clevere Features wie Mocking und Snapshots ermöglichen automatischen Unit-Test

Nachteile

  • Eine konsequente Durchführung der Test-Prozesse gelingt idealerweise durch die Erzeugung eines Aufwands seitens des Entwicklers
  • Regressionen und andere Fehlerquellen sind möglich

 

Fazit: Jest macht automatische Test-Prozesse leicht

Wenn Komplexes einer belastbaren Prüfung unterzogen werden muss, sind verlässliche Werkzeuge unverzichtbar. Das Open Source JavaScript-Test-Framework Jest bildet hier keine Ausnahme. Es lässt sich intuitiv bedienen, wobei Facebook diverse Tools zur Optimierung des Prozesses zur Verfügung stellt. Somit handelt es sich bei diesem Werkzeug um ein Framework, auf das zahlreiche Entwickler und Entwicklerinnen zu recht nicht verzichten möchten.

 

Verwandte Begriffe