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 typescriptInitialisieren Sie dann die Jest-Konfiguration:
npx ts-jest config:initDies 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.
Auch in der Bibliothek
Arbeiten mit ZIP-Archiven in Rust: Die Bibliothek zip und eine vollständige Anleitung
Arbeiten mit Daten in Go (Golang): Überblick über Bibliotheken und Pakete
Arbeiten mit YAML in Kotlin: Bibliotheken, Beispiele und Parsing
Datenvalidierung in Rust: Überblick über Bibliotheken und Frameworks
Swagger/OpenAPI-Generierung für PHP: Die besten Tools und Bibliotheken