Mocha TDD 인터페이스

Mocha TDD 인터페이스 (suite / test)

BDD 인터페이스가 describe()·it()으로 행동을 문장처럼 서술한다면, TDD 인터페이스는 suite()·test()라는 조금 더 전통적인 이름을 써요. Test-Driven-Development, 즉 테스트 주도 개발 스타일에서 익숙한 용어죠. 같은 Mocha 위에서 동작하지만 함수 이름이 다르니, 어느 쪽에 더 익숙한지에 따라 고를 수 있어요.

출처: Mocha — TDD 인터페이스

제공되는 함수

TDD 인터페이스는 BDD의 것과 쌍을 이루는 함수들을 제공해요.

  • suite() — 테스트 묶음(스위트) 정의 (BDD의 describe())
  • test() — 테스트 케이스 정의 (BDD의 it())
  • suiteSetup() · suiteTeardown() — 스위트 전후 한 번씩 (BDD의 before() · after())
  • setup() · teardown() — 각 테스트 전후 (BDD의 beforeEach() · afterEach())

구조가 BDD와 똑같은 자리에 각기 다른 이름이 들어가는 형태예요. 그래서 BDD를 이미 알고 있다면 이름만 바꿔 생각하면 어렵지 않아요.

예시로 보는 구조

suite()로 테마를 묶고 그 안에서 setup()으로 각 테스트 전에 치를 준비를 하고, test()로 기대값을 확인하는 흐름이에요.

suite("Array", function () {
  setup(function () {
    // ...
  });

  suite("#indexOf()", function () {
    test("should return -1 when not present", function () {
      assert.equal(-1, [1, 2, 3].indexOf(4));
    });
  });
});

검증은 assert.equal(-1, [1, 2, 3].indexOf(4))처럼 인자 순서에 주의해서 쓰는 게 중요해요. 기대하는 값과 실제 값이 어떤 순서로 들어가는지 프레임워크·라이브러리마다 조금씩 다르거든요.

더 알아보기 (Learn more)