Jest für TypeScript: Vollständiger Leitfaden zum Testen

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 warum wird es für TypeScript benötigt?

Jest ist ein leistungsstarkes und beliebtes Framework zum Testen von JavaScript und TypeScript, entwickelt von Meta (Facebook). Es bietet alles, was zum Schreiben von Unit-Tests, Integrationstests und Snapshot-Tests „out of the box" benötigt wird: eine Assertion-Bibliothek, Mocks, Spione, Timer und Code Coverage. Für TypeScript ist Jest besonders wertvoll, da es ermöglicht, Typen während der Testausführung zu überprüfen, was die Zuverlässigkeit des Codes erhöht. Die Verwendung von Jest mit TypeScript hilft Entwicklern, Fehler schneller zu finden, Code sicher zu refaktorisieren und eine hohe Projektqualität aufrechtzuerhalten.

Installation und Konfiguration

Installieren Sie zunächst Jest und die erforderlichen Typen über npm oder yarn:

npm install --save-dev jest @types/jest ts-jest typescript

Initialisieren Sie dann die Jest-Konfiguration:

npx ts-jest config:init

Dies erstellt eine Datei jest.config.js mit Einstellungen für TypeScript. Stellen Sie sicher, dass in tsconfig.json "module": "commonjs" gesetzt ist, oder verwenden Sie ts-node für ESM.

Grundlegende Funktionen

  • describe und it/test — Gruppierung und Schreiben von Tests.
  • expect — Assertion-Funktion mit vielen Matchern (toBe, toEqual, toContain, toThrow usw.).
  • beforeEach / afterEach — Hooks zum Vorbereiten und Bereinigen der Umgebung.
  • jest.mock — Automatisches Mocken von Modulen.
  • jest.spyOn — Überwachung von Funktionsaufrufen.
  • Snapshot-Testing — Vergleich der Ausgabe von Komponenten.
  • Code Coverage — Integriertes Dienstprogramm --coverage.

Codebeispiel in TypeScript

// math.tsexport const add = (a: number, b: number): number => a + b;export const divide = (a: number, b: number): number => {  if (b === 0) throw new Error('Division by zero');  return a / b;};

// math.test.tsimport { add, divide } from './math';

describe('Math functions', () => { test('adds two numbers correctly', () => { expect(add(2, 3)).toBe(5); expect(add(-1, 1)).toBe(0); });

test('throws error when dividing by zero', () => { expect(() => divide(10, 0)).toThrow('Division by zero'); });

test('divides correctly', () => { expect(divide(10, 2)).toBe(5); expect(divide(9, 3)).toBeCloseTo(3); });});

Wann sollte Jest mit TypeScript verwendet werden?

  • Beliebige TypeScript-Projekte — von kleinen Bibliotheken bis hin zu großen Anwendungen.
  • Entwicklung mit TDD — Jest eignet sich hervorragend zum Schreiben von Tests vor der Implementierung.
  • Refactoring — um sicherzustellen, dass Änderungen die vorhandene Logik nicht beschädigen.
  • CI/CD-Pipelines — schnelles Ausführen von Tests und Überprüfung der Code Coverage.
  • Testen von React-Komponenten — zusammen mit @testing-library/react.

Jest ist der De-facto-Standard für das Testen von TypeScript, dank seiner einfachen Einrichtung, der umfangreichen API und der hervorragenden Integration mit modernen Werkzeugen.

Empfehlungen