Mocha oferă multiple interfețe de testare. În timp ce bdd folosește describe() și it(), interfața tdd folosește convenții clasice în stil xUnit cu suite() și test().
Configurare Interfață TDD
const { expect } = require('chai');
// Configurează Mocha pentru a utiliza interfața TDD
mocha.setup('tdd');
suite('Payment Processing', () => {
suiteSetup(() => {
// Rulează o singură dată înaintea tuturor testelor din această suită
});
suiteTeardown(() => {
// Rulează o singură dată după toate testele din această suită
});
setup(() => {
// Rulează înaintea fiecărui test
});
teardown(() => {
// Rulează după fiecare 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');
});
});
Comparație: BDD vs TDD
| Concept | Interfață BDD (bdd) |
Interfață TDD (tdd) |
|---|---|---|
| Grup de Teste | describe("name", () => {}) |
suite("name", () => {}) |
| Test Individual | it("does something", () => {}) |
test("does something", () => {}) |
| Hook Înainte de Toate | before(() => {}) |
suiteSetup(() => {}) |
| Hook După Toate | after(() => {}) |
suiteTeardown(() => {}) |
| Hook Înainte de Fiecare | beforeEach(() => {}) |
setup(() => {}) |
| Hook După Fiecare | afterEach(() => {}) |
teardown(() => {}) |
Rularea Testelor TDD prin CLI
Implicit, Mocha CLI folosește interfața BDD. Pentru a rula suite TDD, transmiteți --ui tdd:
mocha --ui tdd test/tdd/*.test.js