Was ist Jest und wozu wird es benötigt?
\n\nJest ist ein leistungsstarkes und beliebtes Framework zum Testen von JavaScript-Code, entwickelt von Facebook (Meta). Es bietet alles, was Sie für das Schreiben von Modul-, Integrations- und End-to-End-Tests „out of the box“ benötigen: Werkzeuge zum Erstellen von Assertions, Mocking, Spies, Timern sowie ein integriertes Tool zur Messung der Codeabdeckung (Code Coverage).
\n\nJest wird häufig im React-Ökosystem verwendet, eignet sich aber hervorragend zum Testen jedes JavaScript-Codes, einschließlich Anwendungen mit Node.js, Angular, Vue.js und anderen Frameworks.
\n\nWozu wird Jest benötigt?
\n- \n
- Automatisierung von Überprüfungen: Ermöglicht eine schnelle und zuverlässige Überprüfung, ob Ihr Code nach jeder Änderung korrekt funktioniert. \n
- Verhinderung von Regressionen: Tests helfen sicherzustellen, dass neuer Code keine alte Funktionalität beschädigt. \n
- Dokumentation: Gut geschriebene Tests dienen als lebendige Dokumentation, die zeigt, wie jede Funktion oder jedes Modul funktionieren soll. \n
- Vertrauen beim Refactoring: Das Vorhandensein von Tests ermöglicht es, Code sicher umzuschreiben und zu verbessern. \n
- Einfache Einrichtung: Jest funktioniert „out of the box“ ohne komplexe Konfiguration. \n
Installation von Jest
\n\nJest wird über den Paketmanager npm oder yarn installiert. Für ein Node.js-Projekt ist dies die Standardmethode.
# Installation als dev-Abhängigkeit (empfohlen)\nnpm install --save-dev jest\n\n# Oder mit yarn\nyarn add --dev jest\n\n\nFügen Sie nach der Installation ein Skript zum Ausführen der Tests in Ihre package.json ein:
{\n "scripts": {\n "test": "jest",\n "test:watch": "jest --watch", // Start im Überwachungsmodus\n "test:coverage": "jest --coverage" // Start mit Coverage-Bericht\n }\n}\n\n\nJetzt können Sie die Tests mit dem Befehl npm test ausführen.
Schnellstart mit einem Codebeispiel
\n\nAngenommen, wir haben ein einfaches Modul für mathematische Operationen math.js:
// math.js\nfunction add(a, b) {\n return a + b;\n}\n\nfunction subtract(a, b) {\n return a - b;\n}\n\nmodule.exports = { add, subtract };\n\n\nErstellen wir eine Testdatei math.test.js (Jest sucht standardmäßig nach Dateien mit der Erweiterung .test.js oder .spec.js):
// math.test.js\nconst { add, subtract } = require('./math');\n\ntest('adds 1 + 2 to equal 3', () => {\n expect(add(1, 2)).toBe(3);\n});\n\ntest('subtracts 5 - 3 to equal 2', () => {\n expect(subtract(5, 3)).toBe(2);\n});\n\n\nFühren Sie die Tests aus:
\n\nnpm test\n\nSie sehen in der Konsole einen Bericht über das Bestehen der Tests. Wenn alles korrekt ist, werden beide Tests grün mit ✓ markiert.
Wichtige Methoden und Funktionen von Jest
\n\nJest bietet eine umfangreiche API. Betrachten wir 10 wichtige Methoden, die 90% Ihrer Aufgaben abdecken.
\n\n1. test(name, fn, timeout) / it(name, fn, timeout)
\nWas es tut: Definiert einen neuen Test. test und it sind Synonyme. Sie können jedes verwenden.
Parameter:
\n- \n
name(string) — der Name des Tests, der im Bericht angezeigt wird. \n fn(function) — die Funktion, die die Testlogik (Assertions) enthält. \n timeout(number, optional) — die Wartezeit für den Test in Millisekunden (Standardwert 5000). \n
Beispiel:
\ntest('zwei plus zwei ist vier', () => {\n expect(2 + 2).toBe(4);\n});\n\nit('der String "hello" hat die Länge 5', () => {\n expect('hello'). Auch in der Bibliothek
CLI-Frameworks für Java: Überblick und Vergleich der besten Tools
GraphQL auf Kotlin: Überblick über Bibliotheken und Tools für die Serverentwicklung