Mocha propose plusieurs interfaces de test. Tandis que bdd emploie describe() et it(), l’interface tdd suit les conventions classiques de style xUnit avec suite() et test().
Configurer l’interface TDD
const { expect } = require('chai');
// Configurer Mocha pour utiliser l’interface TDD
mocha.setup('tdd');
suite('Payment Processing', () => {
suiteSetup(() => {
// S’exécute une seule fois avant tous les tests de cette suite
});
suiteTeardown(() => {
// S’exécute une seule fois après tous les tests de cette suite
});
setup(() => {
// S’exécute avant chaque test
});
teardown(() => {
// S’exécute après chaque 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');
});
});
Comparatif : BDD vs TDD
| Concept | Interface BDD (bdd) |
Interface TDD (tdd) |
|---|---|---|
| Groupe de tests | describe("name", () => {}) |
suite("name", () => {}) |
| Test unitaire | it("does something", () => {}) |
test("does something", () => {}) |
| Hook avant tout | before(() => {}) |
suiteSetup(() => {}) |
| Hook après tout | after(() => {}) |
suiteTeardown(() => {}) |
| Hook avant chaque test | beforeEach(() => {}) |
setup(() => {}) |
| Hook après chaque test | afterEach(() => {}) |
teardown(() => {}) |
Exécuter des tests TDD via la CLI
Par défaut, la CLI Mocha utilise l’interface BDD. Pour exécuter des suites TDD, passez --ui tdd :
mocha --ui tdd test/tdd/*.test.js