Jest für JavaScript (Node.js): Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Jest und wozu wird es benötigt?

\n\n

Jest 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\n

Jest 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\n

Wozu 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
\n\n

Installation von Jest

\n\n

Jest wird über den Paketmanager npm oder yarn installiert. Für ein Node.js-Projekt ist dies die Standardmethode.

\n\n
# Installation als dev-Abhängigkeit (empfohlen)\nnpm install --save-dev jest\n\n# Oder mit yarn\nyarn add --dev jest\n
\n\n

Fügen Sie nach der Installation ein Skript zum Ausführen der Tests in Ihre package.json ein:

\n\n
{\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\n

Jetzt können Sie die Tests mit dem Befehl npm test ausführen.

\n\n

Schnellstart mit einem Codebeispiel

\n\n

Angenommen, wir haben ein einfaches Modul für mathematische Operationen math.js:

\n\n
// 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\n

Erstellen wir eine Testdatei math.test.js (Jest sucht standardmäßig nach Dateien mit der Erweiterung .test.js oder .spec.js):

\n\n
// 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\n

Führen Sie die Tests aus:

\n\n
npm test
\n\n

Sie sehen in der Konsole einen Bericht über das Bestehen der Tests. Wenn alles korrekt ist, werden beide Tests grün mit ✓ markiert.

\n\n

Wichtige Methoden und Funktionen von Jest

\n\n

Jest bietet eine umfangreiche API. Betrachten wir 10 wichtige Methoden, die 90% Ihrer Aufgaben abdecken.

\n\n

1. test(name, fn, timeout) / it(name, fn, timeout)

\n

Was es tut: Definiert einen neuen Test. test und it sind Synonyme. Sie können jedes verwenden.

\n

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
\n

Beispiel:

\n
test('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').                    

Empfehlungen