TypeScript-Testen: Eine Schritt-für-Schritt-Anleitung für Anfänger

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

Warum TypeScript-Testen nicht beängstigend, sondern vorteilhaft ist

\n\n

Sie haben eine tolle Funktion in TypeScript geschrieben, das Projekt gestartet – alles funktioniert. Eine Woche später fügen Sie eine neue Funktion hinzu, und die alte Logik ist kaputt. Kommt Ihnen das bekannt vor? Wenn ja, dann müssen Sie sich dringend mit dem Testen anfreunden. Und haben Sie keine Angst: Tests sind keine langweilige Pflicht, sondern Ihr persönlicher "Bug-Detektor", der 24/7 arbeitet.

\n\n

In diesem Artikel schauen wir uns an, wo ein Anfänger mit dem Testen von TypeScript beginnen sollte. Sie erfahren, wie Sie die Umgebung einrichten, Ihren ersten Unit-Test schreiben und sich nicht in den Typen verlieren. Kein überflüssiges Wissen – nur Praxis und echte Code-Beispiele.

\n\n

Warum TypeScript überhaupt testen, wenn es schon sicher ist?

\n\n

TypeScript fängt zwar viele Fehler bereits zur Kompilierzeit ab: falsche Typen, fehlende Felder, ungültige Argumente. Aber statische Typisierung schützt nicht vor logischen Fehlern. Ihre Funktion kann perfekt kompilieren, aber ein falsches Ergebnis liefern. Zum Beispiel:

\n\n
function sum(a: number, b: number): number {\n  return a - b; // Fehler! Statt Addition wird subtrahiert\n}
\n\n

TypeScript wird sich nicht beschweren – die Typen stimmen. Ein Unit-Test zeigt jedoch sofort, dass sum(2, 2) nicht gleich 4 ist. Daher ist TypeScript-Testen keine Laune, sondern eine Notwendigkeit für jedes ernsthafte Projekt.

\n\n

Schritt 1. Werkzeug auswählen: Warum Jest der beste Freund für Anfänger ist

\n\n

Es gibt mehrere beliebte Test-Frameworks auf dem Markt: Mocha, Jasmine, Vitest, Jest. Für Anfänger empfehle ich wärmstens Jest. Warum?

\n\n
    \n
  • Funktioniert "out of the box" – keine lange Einrichtung nötig.
  • \n
  • Integrierter Mock-Mechanismus und Code-Abdeckung.
  • \n
  • Hervorragende TypeScript-Unterstützung über ts-jest.
  • \n
  • Verständliche Fehlermeldungen.
  • \n
\n\n

Lassen Sie uns Jest in Ihrem Projekt installieren. Ich gehe davon aus, dass Sie TypeScript bereits haben. Falls nicht, erstellen Sie ein neues Projekt:

\n\n
mkdir my-ts-project\ncd my-ts-project\nnpm init -y\nnpm install typescript jest @types/jest ts-jest --save-dev
\n\n

Jetzt erstellen wir eine Datei jest.config.js im Projektstammverzeichnis:

\n\n
module.exports = {\n  preset: 'ts-jest',\n  testEnvironment: 'node',\n  roots: ['/src'],\n  testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],\n};
\n\n

Und fügen ein Skript in package.json hinzu:

\n\n
"scripts": {\n  "test": "jest",\n  "test:watch": "jest --watch"\n}
\n\n

Fertig! Jetzt können Sie Tests schreiben.

\n\n

Schritt 2. Den ersten Test in TypeScript schreiben

\n\n

Erstellen wir eine einfache Funktion in der Datei src/math.ts:

\n\n
export function add(a: number, b: number): number {\n  return a + b;\n}\n\nexport function divide(a: number, b: number): number {\n  if (b === 0) {\n    throw new Error('Division durch Null ist nicht erlaubt');\n  }\n  return a / b;\n}
\n\n

Jetzt schreiben wir einen Test dafür. Erstellen Sie den Ordner src/__tests__/ und die Datei math.test.ts:

\n\n
import { add, divide } from '../math';\n\ndescribe('Math functions', () => {\n  test('adds two numbers correctly', () => {\n    expect(add(2, 3)).toBe(5);\n    expect(add(-1, 1)).toBe(0);\n    expect(add(0, 0)).toBe(0);\n  });\n\n  test('divides two numbers', () => {\n    expect(divide(10, 2)).toBe(5);\n    expect(divide(9, 3)).toBe(3);\n  });\n\n  test('throws error when dividing by zero', () => {\n    expect(() => divide(5, 0)).toThrow('Division durch Null ist nicht erlaubt');\n  });\n});
\n\n

Führen Sie npm test aus und Sie sehen einen grünen Bericht. Herzlichen Glückwunsch – Sie haben gerade Ihre ersten Unit-Tests in TypeScript geschrieben!

\n\n

Was ist hier passiert?

\n\n
    \n
  • describe – fasst Tests in einer logischen Gruppe zusammen.
  • \n
  • test oder it – ein einzelner Testfall.
  • \n
  • expect – eine Behauptung, die überprüft

Blogs

Buchempfehlungen