JavaScript:
Tests Schreiben
Wie geht das:
Native Ansatz (mit Jest)
Jest ist ein beliebtes Test-Framework, das eine benutzerfreundliche API für das Schreiben von Unit-Tests in JavaScript bietet. Es erfordert minimale Konfiguration und kommt mit Funktionen wie Mock-Funktionen, Timern und Snapshot-Tests.
- Installation:
npm install --save-dev jest
- Einen einfachen Test schreiben:
Erstelle eine Datei namens sum.test.js
:
const sum = require('./sum'); // Nehmen wir an, diese Funktion addiert einfach zwei Zahlen
test('addiert 1 + 2 zu 3', () => {
expect(sum(1, 2)).toBe(3);
});
- Deinen Test ausführen:
npx jest
Beispielausgabe:
PASS ./sum.test.js
✓ addiert 1 + 2 zu 3 (5ms)
Asynchronen Code testen
Jest erleichtert das Testen von Promises und asynchroner/await-Syntax:
// asyncSum.js
async function asyncSum(a, b) {
return Promise.resolve(a + b);
}
// asyncSum.test.js
test('asynchrone Addition funktioniert', async () => {
await expect(asyncSum(1, 2)).resolves.toBe(3);
});
Verwendung von Drittanbieter-Bibliotheken (Mocha & Chai)
Mocha ist ein weiteres beliebtes Test-Framework, das oft mit der Assertion-Bibliothek Chai für aussagekräftigere Tests verwendet wird.
- Installation:
npm install --save-dev mocha chai
- Einen Test mit Mocha und Chai schreiben:
Erstelle calculate.test.js
:
const chai = require('chai');
const expect = chai.expect;
const calculate = require('./calculate'); // Ein einfaches Berechnungsmodul
describe('Calculate', function() {
it('sollte zwei Werte summieren', function() {
expect(calculate.sum(5, 2)).to.equal(7);
});
});
- Deine Tests mit Mocha ausführen:
Füge ein Skript in deine package.json
hinzu:
"scripts": {
"test": "mocha"
}
Dann führe aus:
npm test
Beispielausgabe:
Calculate
✓ sollte zwei Werte summieren
1 passing (8ms)
Diese Beispiele illustrieren die Grundlagen des Test-Schreibens und der Ausführung in JavaScript. Die Einführung eines Test-Frameworks wie Jest oder Mocha mit Chai kann eine solide Grundlage für robustes Anwendungstesting bieten und helfen sicherzustellen, dass Ihr Code wie beabsichtigt funktioniert, über Updates und Refactorings hinweg.