Mocha TDD 인터페이스
Mocha TDD 인터페이스 (suite / test)
BDD 인터페이스가 describe()·it()으로 행동을 문장처럼 서술한다면, TDD 인터페이스는 suite()·test()라는 조금 더 전통적인 이름을 써요. Test-Driven-Development, 즉 테스트 주도 개발 스타일에서 익숙한 용어죠. 같은 Mocha 위에서 동작하지만 함수 이름이 다르니, 어느 쪽에 더 익숙한지에 따라 고를 수 있어요.
제공되는 함수
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))처럼 인자 순서에 주의해서 쓰는 게 중요해요. 기대하는 값과 실제 값이 어떤 순서로 들어가는지 프레임워크·라이브러리마다 조금씩 다르거든요.