10 vertrauenswürdige JavaScript-Testtools

Das Testen von JavaScript-Code ist unkompliziert. Wie kann man die Fehler fernhalten und sicherstellen, dass Anwendungen im Browser oder auf Node.js reibungslos ausgeführt werden? Glücklicherweise haben Entwickler eine Vielzahl von Optionen, wenn es um JavaScript-Tests geht.

Testläufer und Frameworks für Unit-Tests, Integrationstests und Funktionstests sind für das JavaScript-Ökosystem verfügbar und decken Node.js und Browser sowie die Angular- und React-Frameworks ab. Im Folgenden finden Sie 10 der vielen bemerkenswerten Optionen, die JavaScript-Entwickler zum Testen ihrer Apps benötigen.

AVA

AVA ist ein Testläufer für Node.js, der eine übersichtliche API, detaillierte Fehlerausgabe und Unterstützung für neue Sprachfunktionen und Prozessisolation bietet. AVA eignet sich am besten zum Testen von Node.js-Modulen und Serveranwendungen, möglicherweise jedoch nicht zum Testen von UI-Anwendungen. AVA bietet unter anderem eine Funktion, mit der ein Test als "zu erledigende" Aufgabe markiert werden kann. Jeder Testdateilauf ist ein separater Prozess. Weitere Vorteile sind der Minimalismus und die Geschwindigkeit von AVA, die einfache Testsyntax und die Möglichkeit, Tests gleichzeitig auszuführen. AVA unterstützt auch asynchrone Funktionen und Observables - ein Observable ist ein Typ, mit dem Push-basierte Datenquellen wie DOM-Ereignisse modelliert werden können.

Installieren Sie AVA

Anweisungen zur Installation von AVA finden Sie auf der GitHub-Seite des Projekts.

Cucumber.js

Die JavaScript-Implementierung des Cucumber-Testtools Cucumber.js läuft auf gepflegten Node.js-Versionen und in modernen Webbrowsern. Das Cucumber-Projekt nennt Vorteile wie Teamkommunikation und die Möglichkeit, automatisierte Tests in „einfacher“ Sprache durchzuführen, sodass jeder im Team sie lesen kann. Auf diese Weise können Kommunikation, Zusammenarbeit und Vertrauen verbessert werden. Cucumber.js enthält eine ausführbare Datei zum Ausführen Ihrer Testsuiten (sogenannte Features) und funktioniert daher bei globaler Installation nicht. (Gurke muss in Support-Dateien erforderlich sein und global installierte Module können nicht benötigt werden.)

Installieren Sie Cucumber.js

Anweisungen zur Installation von Cucumber.js finden Sie auf GitHub.

Enzym

Enzyme ist ein Testdienstprogramm für die React JavaScript UI-Bibliothek. Es soll das Testen der Ausgabe von React-Komponenten erleichtern. Entwickler können die Laufzeit anhand der Ausgabe bearbeiten, durchlaufen und simulieren. Die Enzym-API ahmt die jQuery-API für die DOM-Manipulation und -Überquerung nach. Das Enzym ist nicht über den Testläufer oder die Assertionsbibliothek geäußert. Wenn Entwickler Enzyme mit benutzerdefinierten Zusicherungen und praktischen Funktionen zum Testen von React-Komponenten verwenden möchten, können sie dies chai-enzymemit Mocha / Chai, jasmine-enzymeJasmine oder jest-enzymeJest in Betracht ziehen . Das Enzym kann auch zum Testen von React Native-Komponenten verwendet werden.

Installieren Sie Enzyme

Anweisungen zur Installation von Enzyme finden Sie auf GitHub. 

Karma

Karma ist ein Testläufer für JavaScript, der die Ausführung von Code in mehreren Browsern ermöglicht. Alle gängigen Browser, einschließlich mobiler Browser, werden unterstützt. Die Entwickler hinter dem Projekt sagen, dass Karma eine Umgebung bietet, in der Entwickler nicht viele Konfigurationen einrichten müssen, sondern Code schreiben und sofortiges Feedback von Tests erhalten können. Karma ist für Tests auf niedriger Ebene (Einheit) konzipiert. Karma ist kein Testframework oder eine Assertionsbibliothek. Es startet einen HTTP-Server und generiert eine Testrunner-Datei aus dem bevorzugten Testframework des Entwicklers. Plug-Ins werden für Frameworks wie Jasmine, Mocha und QUnit angeboten.

Installieren Sie Karma

Anweisungen zur Installation von Karma finden Sie auf GitHub.

Jasmin

Jasmine wird als "verhaltensgesteuertes" Framework zum Testen von JavaScript in Rechnung gestellt. Es ist nicht von anderen JavaScript-Frameworks abhängig und benötigt kein DOM. Seine Befürworter zitieren seine Syntax als das einfache Schreiben von Tests. Jasmine wird von Pivotal Labs verwaltet und eignet sich zum Testen von Websites, Node.js-Projekten und allem anderen, wo JavaScript ausgeführt werden kann. Jasmine soll das Testen in einer Vielzahl verschiedener Anwendungsfälle und Browser vereinfachen und ist JavaScript-Framework-unabhängig, sodass Entwickler Code aus React oder Angular oder einer anderen JavaScript-Bibliothek testen können. Jasmine strebt nach minimalen Abhängigkeiten und bleibt dabei klein und wartbar.

Installieren Sie Jasmine

Anweisungen zur Installation von Jasmine und zu den ersten Schritten mit Jasmine finden Sie auf GitHub.

Scherz

Jest wird als umfassende JavaScript-Testlösung in Rechnung gestellt, die für die meisten JavaScript-Projekte sofort konfigurationsfrei funktioniert. Tests haben einen eindeutigen globalen Status und können parallel ausgeführt werden. Zuvor fehlgeschlagene Tests werden zuerst ausgeführt, wobei die Läufe basierend auf der Länge der Testdateien neu organisiert werden. Funktioniert nur mit gängigen JavaScript-Technologien wie Angular, Babel, Node.js, React und Vue. Tests können ausgeführt werden, um große Objekte zu verfolgen, wobei Schnappschüsse neben Tests oder eingebetteten Inline-Objekten gespeichert werden. In Testdateien fügt Jest Methoden und Objekte in die globale Umgebung ein, ohne dass sie importiert werden müssen.

Installieren Sie Jest

Anweisungen zur Installation von Jest finden Sie auf GitHub. 

Luna

Luna ist ein eigenständiges Unit-Testing-Framework für JavaScript, für das keine Konfiguration erforderlich ist. Entwickler können ihre ersten Komponententests innerhalb von Minuten ausführen, heißt es in der Produktdokumentation. Berichte zur Codeabdeckung werden ohne Installation anderer Module erstellt. Tests müssen als ES6-Module geschrieben werden, wobei die Tests standardmäßig im Browser ausgeführt werden. Parallelität wird unterstützt, wobei Testgruppen parallel ausgeführt werden. Luna war teilweise von den integrierten Tests für Googles Go-Sprache inspiriert. Luna kann nicht transpilieren und funktioniert daher nicht mit CoffeeScript oder TypeScript. Es fehlt auch die Unterstützung für ältere Browser. 

Installiere Luna

Anweisungen zur Installation von Luna finden Sie auf GitHub. 

Mokka

Mocha ist ein funktionsreiches Testframework, das auf Node.js und im Browser ausgeführt wird. Es verspricht, das Testen von asynchronem Code „einfach und unterhaltsam“ zu gestalten. Die Tests werden seriell durchgeführt, was laut Befürwortern eine genaue und flexible Berichterstellung ermöglicht, während nicht erfasste Ausnahmen genauen Testfällen zugeordnet werden. Für kontinuierliche Tests können Entwickler das Tool Wallaby.js verwenden, um eine Echtzeit-Codeabdeckung für Mocha mit jeder Assertionsbibliothek zu ermöglichen. Mocha lässt sich auch in Anwendungsframeworks integrieren, z. B. über Konacha, mit dem Entwickler Mocha verwenden können, um JavaScript in Ruby on Rails-Anwendungen zu testen. Eine Reihe von Editor-Plug-Ins ist ebenfalls verfügbar, z. B. die Mocha-Seitenleistenerweiterung für Visual Studio Code. 

Installieren Sie Mocha

Anweisungen zur Installation von Mocha und eine Dokumentation zu den vielen Funktionen von Mocha finden Sie auf der Projektwebsite. 

Winkelmesser

Winkelmesser ist ein End-to-End-Testframework für Angular und seinen Vorgänger AngularJS. Tests werden für Anwendungen in einem Browser ausgeführt, wobei Proctractor wie ein Benutzer mit einer Anwendung interagiert. Es werden winkelspezifische Locator-Strategien zum Testen von Angular-Elementen ohne Setup unterstützt. Eine automatische Wartefunktion ermöglicht es dem Winkelmesser, den nächsten Schritt in einem Test auszuführen, sobald eine Webseite ausstehende Tests abgeschlossen hat. Der Winkelmesser basiert auf WebdriverJS, einer JavaScript-Implementierung des zum Testen verwendeten Selenium-Browser-Automatisierungstools.

Winkelmesser installieren

Anweisungen zur Installation von Protractor finden Sie auf der Protractor-Website. 

QUnit

QUnit ist ein JavaScript-Unit-Test-Framework, das von den Projekten JQuery, jQuery UI und jQuery Mobile verwendet wird. Tatsächlich wurde QUnit ursprünglich als Teil von jQuery vom jQuery-Erfinder John Resig entwickelt. QUnit wird als schnell und einfach zu bedienen mit einer API in Rechnung gestellt, die eine Meinung hat, aber schlank und erweiterbar ist. Sie kann zum Testen von generischem JavaScript-Code verwendet werden. Wenn ein Test oder eine Behauptung fehlschlägt, verspricht QUnit, so schnell wie möglich Feedback zu geben, mit ausreichenden Details, um das Problem herauszufinden. Die Assertionsmethoden in QUnit folgen der CommonJS-Unit-Testspezifikation. QUnit unterstützt Browser, die von jQuery 3.x unterstützt werden, einschließlich Varianten von Chrome, Edge, Firefox, Internet Explorer und Safari.

Installieren Sie QUnit

Sie können QUnit von der QUnit-Website oder von jQuery.cdn herunterladen und installieren.