Chai für JavaScript (Node.js): Komplette Anleitung 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

1. Was ist Chai und wozu braucht man es?

Chai ist eine leistungsstarke und flexible Assertion-Bibliothek im JavaScript-Ökosystem, die speziell zum Schreiben von Tests entwickelt wurde. Sie bietet Entwicklern eine breite Palette von Werkzeugen, um das erwartete Verhalten von Code zu überprüfen. Das Hauptziel von Chai ist es, das Schreiben von Tests intuitiv, lesbar und ausdrucksstark zu gestalten – unabhängig davon, ob Sie den klassischen TDD-Ansatz (Test-Driven Development) oder den moderneren BDD-Stil (Behavior-Driven Development) bevorzugen.

Warum ist Chai wichtig? In der Softwareentwicklung ist es entscheidend sicherzustellen, dass jede Funktion, jedes Modul oder jede Komponente genau wie beabsichtigt funktioniert. Anstatt jeden Wert manuell mit if...else-Abfragen zu prüfen und Ausnahmen zu werfen, bietet Chai eine elegante API. Sie ermöglicht es, Assertions zu schreiben, die wie normale englische Sätze aussehen: expect(foo).to.be.a('string') oder assert.equal(3, 3). Das vereinfacht das Lesen, Warten und Debuggen von Tests erheblich. Chai ist kein Test-Runner (wie Mocha oder Jest), sondern arbeitet mit diesen zusammen und stellt die Schicht zur Überprüfung von Bedingungen bereit.

Chai ist besonders in der Node.js-Umgebung beliebt, kann aber auch im Browser verwendet werden. Es unterstützt drei Haupt-Interfaces: expect (BDD-Stil mit Methodenverkettung), should (BDD-Stil, erweitert Prototypen) und assert (TDD-Stil, klassisch). Dank seiner Modularität und der großen Anzahl an Plugins (z. B. für JSON, DOM, Promise) ist Chai eine universelle Lösung zum Testen nahezu jedes JavaScript-Codes.

2. Installation

Die Installation von Chai in einem Node.js-Projekt erfolgt über den Paketmanager npm. Es wird empfohlen, sie als Entwicklungsabhängigkeit (devDependency) zu installieren, da die Bibliothek im Produktivbetrieb nicht benötigt wird.

npm install --save-dev chai

Wenn Sie yarn verwenden:

yarn add --dev chai

Nach der Installation können Sie Chai in Ihrer Testdatei einbinden. Üblicherweise geschieht dies auf eine der folgenden Arten:

// Import des gesamten Moduls (empfohlen für Node.js)
const chai = require('chai');

// Oder, wenn Sie ES-Module verwenden (type: "module" in package.json)
import chai from 'chai';

3. Schnellstart

Lassen Sie uns einen einfachen Test mit Chai und dem beliebten Test-Runner Mocha schreiben. Installieren Sie zuerst Mocha: npm install --save-dev mocha.

Erstellen Sie eine Datei test.js:

const chai = require('chai');
const expect = chai.expect; // Wir verwenden den BDD-Stil

// Die zu testende Funktion
function add(a, b) {
    return a + b;
}

// Beschreibung der Test-Suite
describe('Die Funktion add', function() {
    // Ein einzelner Testfall (Spec)
    it('sollte zwei Zahlen korrekt addieren', function() {
        // Die Assertion
        expect(add(2, 3)).to.equal(5);
    });

    it('sollte eine Zahl zurückgeben', function() {
        expect(add(2, 3)).to.be.a('number');
    });
});

Führen Sie den Test mit dem Befehl npx mocha test.js aus. Sie sehen einen grünen Bericht über den erfolgreichen Testdurchlauf. Dieses Beispiel zeigt die grundlegende Struktur: describe zum Gruppieren von Tests, it zur Beschreibung eines einzelnen Tests und expect zur Überprüfung des Ergebnisses.

4. Wichtige Methoden und Funktionen

Chai bietet drei Haupt-APIs: expect, should und assert. Wir betrachten die am häufigsten verwendeten Methoden am Beispiel von expect, da es die beliebteste und flexibelste Variante ist.

4.1. expect(value).to.

Empfehlungen