Testen in TypeScript mit Jest

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 Testen in TypeScript?

Testen in TypeScript ist der Prozess der Überprüfung der Korrektheit von Code, der in der Sprache TypeScript geschrieben wurde, mithilfe spezialisierter Bibliotheken und Frameworks. TypeScript ist eine Erweiterung von JavaScript, die statische Typisierung hinzufügt, was das Testen besonders effektiv macht: Typen helfen, Fehler bereits zur Kompilierungszeit zu erkennen, während Tests die Geschäftslogik und das Verhalten der Anwendung überprüfen. Die wichtigste Bibliothek zum Testen von TypeScript ist Jest, die TypeScript standardmäßig oder über zusätzliche Konfigurationen unterstützt.

Warum ist Testen in TypeScript notwendig?

Testen ist notwendig, um die Zuverlässigkeit des Codes zu gewährleisten, Regressionen zu verhindern, die Entwicklung zu beschleunigen und das Verhalten von Funktionen zu dokumentieren. In TypeScript sind Tests besonders nützlich, da sie nicht nur die Logik, sondern auch die Typkonformität überprüfen, was die Anzahl der Laufzeitfehler reduziert. Ohne Tests ist es schwierig, große Projekte zu warten, bei denen Änderungen in einem Modul andere Teile des Systems beschädigen können.

Wie installiere ich Jest für TypeScript?

Führen Sie die folgenden Befehle im Terminal aus, um Jest mit TypeScript-Unterstützung zu installieren:

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

Erstellen Sie dann eine Konfigurationsdatei jest.config.js:

module.exports = {  preset: 'ts-jest',  testEnvironment: 'node',};

Oder verwenden Sie den Initialisierungsbefehl: npx ts-jest config:init. Danach können Sie Tests mit dem Befehl npx jest ausführen.

Hauptfunktionen von Jest in TypeScript

  • describe und it — Gruppierung und Beschreibung von Testfällen.
  • expect — Behauptungen (assertions) zur Überprüfung von Werten.
  • matchers — integrierte Funktionen zum Vergleichen (toBe, toEqual, toBeTruthy usw.).
  • mock-Funktionen — Simulation von Abhängigkeiten und Modulen.
  • async/await — Unterstützung für asynchronen Code.
  • coverage — integriertes Dienstprogramm zur Messung der Codeabdeckung durch Tests.

Codebeispiel in TypeScript

Betrachten wir eine einfache Funktion und einen dazugehörigen Test:

// math.tsexport function add(a: number, b: number): number {  return a + b;}

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

describe('add function', () => { it('should add two numbers correctly', () => { expect(add(2, 3)).toBe(5); });

it('should handle negative numbers', () => { expect(add(-1, 1)).toBe(0); });

it('should return NaN for invalid inputs', () => { // TypeScript erlaubt keine Übergabe eines Strings, aber wenn man die Typen umgeht: expect(add(NaN, 5)).toBeNaN(); });});

Führen Sie den Test mit dem Befehl npx jest aus. Sie sehen einen Bericht über das Bestehen der Tests und die Abdeckung.

Wann sollte man Jest für TypeScript verwenden?

Jest wird in den folgenden Fällen empfohlen:

  • Node.js-Anwendungen und API-Server in TypeScript.
  • Frontend-Projekte mit React, Angular oder Vue (Jest funktioniert mit DOM über jsdom).
  • Bibliotheken und Dienstprogramme, bei denen Typsicherheit wichtig ist.
  • Projekte mit CI/CD, die einen automatischen Testlauf erfordern.
  • Microservice-Architektur für isoliertes Testen von Modulen.

Vermeiden Sie Jest, wenn Sie nur Typen testen müssen (verwenden Sie tsc --noEmit) oder wenn das Projekt ein anderes Test-Framework verwendet (z. B. Mocha oder Vitest).

Empfehlungen