Краткий справочник

Шпаргалка по TDD-интерфейсу Mocha.js

Краткий справочник по TDD-интерфейсу Mocha.js: suite, test, хуки setup/teardown, асинхронные тесты и проверки Chai expect.

· Опубликовано

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", () => {})
Хук до всех тестов before(() => {}) suiteSetup(() => {})
Хук после всех тестов after(() => {}) suiteTeardown(() => {})
Хук перед каждым тестом beforeEach(() => {}) setup(() => {})
Хук после каждого теста afterEach(() => {}) teardown(() => {})

Запуск TDD-тестов через CLI

По умолчанию CLI Mocha использует BDD-интерфейс. Чтобы запускать TDD-наборы, передайте --ui tdd:

mocha --ui tdd test/tdd/*.test.js

Ссылки

Связанные темы