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.

  1. Installation:
npm install --save-dev jest
  1. 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);
});
  1. 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.

  1. Installation:
npm install --save-dev mocha chai
  1. 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);
  });
});
  1. 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.