Το Mocha παρέχει πολλαπλές διεπαφές δοκιμών. Ενώ η bdd χρησιμοποιεί describe() και it(), η διεπαφή tdd ακολουθεί συμβάσεις xUnit με suite() και test().
Ρύθμιση Διεπαφής TDD
const { expect } = require('chai');
// Ρύθμιση του Mocha για χρήση της διεπαφής TDD
mocha.setup('tdd');
suite('Payment Processing', () => {
suiteSetup(() => {
// Εκτελείται μία φορά πριν από όλες τις δοκιμές αυτής της σουίτας
});
suiteTeardown(() => {
// Εκτελείται μία φορά μετά από όλες τις δοκιμές αυτής της σουίτας
});
setup(() => {
// Εκτελείται πριν από κάθε δοκιμή
});
teardown(() => {
// Εκτελείται μετά από κάθε δοκιμή
});
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');
});
});
Σύγκριση: BDD έναντι TDD
| Έννοια | Διεπαφή BDD (bdd) |
Διεπαφή TDD (tdd) |
|---|---|---|
| Ομάδα Δοκιμών | describe("name", () => {}) |
suite("name", () => {}) |
| Μεμονωμένη Δοκιμή | it("does something", () => {}) |
test("does something", () => {}) |
| Hook Πριν από Όλες | before(() => {}) |
suiteSetup(() => {}) |
| Hook Μετά από Όλες | after(() => {}) |
suiteTeardown(() => {}) |
| Hook Πριν από Κάθε Δοκιμή | beforeEach(() => {}) |
setup(() => {}) |
| Hook Μετά από Κάθε Δοκιμή | afterEach(() => {}) |
teardown(() => {}) |
Εκτέλεση Δοκιμών TDD μέσω CLI
Από προεπιλογή, το Mocha CLI χρησιμοποιεί τη διεπαφή BDD. Για να εκτελέσετε σουίτες TDD, περάστε --ui tdd:
mocha --ui tdd test/tdd/*.test.js