Mocha는 여러 테스트 인터페이스를 제공합니다. bdd가 describe()와 it()을 사용하는 반면, tdd 인터페이스는 고전적인 xUnit 스타일의 suite()와 test() 규칙을 사용합니다.
TDD 인터페이스 설정
const { expect } = require('chai');
// TDD 인터페이스를 사용하도록 Mocha 설정
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 vs TDD
| 개념 | BDD 인터페이스 (bdd) |
TDD 인터페이스 (tdd) |
|---|---|---|
| 테스트 그룹 | describe("name", () => {}) |
suite("name", () => {}) |
| 개별 테스트 | it("does something", () => {}) |
test("does something", () => {}) |
| 전체 사전 훅 | before(() => {}) |
suiteSetup(() => {}) |
| 전체 사후 훅 | after(() => {}) |
suiteTeardown(() => {}) |
| 각 테스트 사전 훅 | beforeEach(() => {}) |
setup(() => {}) |
| 각 테스트 사후 훅 | afterEach(() => {}) |
teardown(() => {}) |
CLI로 TDD 테스트 실행
기본적으로 Mocha CLI는 BDD 인터페이스를 사용합니다. TDD 테스트 스위트를 실행하려면 --ui tdd 옵션을 전달하세요:
mocha --ui tdd test/tdd/*.test.js