Référence rapide

Aide-mémoire Interface TDD de Mocha.js

Guide rapide pour l’interface TDD de Mocha.js : suite, test, hooks setup/teardown, tests asynchrones et assertions expect de Chai.

· Publié le

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

Références

Sujets associés