Mocha biedt meerdere testinterfaces. Waar bdd gebruikmaakt van describe() en it(), volgt de tdd-interface klassieke xUnit-conventies met suite() en test().
TDD-interface Instellen
const { expect } = require('chai');
// Configureer Mocha voor gebruik met de TDD-interface
mocha.setup('tdd');
suite('Payment Processing', () => {
suiteSetup(() => {
// Draait eenmalig vóór alle tests in deze suite
});
suiteTeardown(() => {
// Draait eenmalig ná alle tests in deze suite
});
setup(() => {
// Draait vóór elke afzonderlijke test
});
teardown(() => {
// Draait ná elke afzonderlijke test
});
test('validates card expiration date', () => {
const isValid = validateExpiry('12/28');
expect(isValid).to.be.true;
});
test('handles async network payments', async () => {
const receipt = await chargeCard(100);
expect(receipt.status).to.equal('success');
});
});
Vergelijking: BDD vs. TDD
| Concept | BDD-interface (bdd) |
TDD-interface (tdd) |
|---|---|---|
| Testgroep | describe("name", () => {}) |
suite("name", () => {}) |
| Individuele Test | it("does something", () => {}) |
test("does something", () => {}) |
| Hook Voor Alles | before(() => {}) |
suiteSetup(() => {}) |
| Hook Na Alles | after(() => {}) |
suiteTeardown(() => {}) |
| Hook Voor Elke Test | beforeEach(() => {}) |
setup(() => {}) |
| Hook Na Elke Test | afterEach(() => {}) |
teardown(() => {}) |
TDD-tests Uitvoeren via CLI
Standaard gebruikt de Mocha CLI de BDD-interface. Geef --ui tdd mee om TDD-testsuites te draaien:
mocha --ui tdd test/tdd/*.test.js