[javascript] Mocha에서 테스트를 작성할 때 주의할 점은?

Mocha에서 테스트를 작성할 때 주의할 점은?

Mocha는 JavaScript 테스트 프레임워크로써, 개발자들이 효과적으로 유닛 테스트와 통합 테스트를 작성하고 실행할 수 있게 도와줍니다. Mocha를 사용하여 테스트를 작성할 때 몇 가지 주의할 점이 있습니다.

1. 비동기 코드에 대한 처리

Mocha는 비동기 코드를 다룰 수 있도록 여러 가지 방법을 제공합니다. 비동기 코드를 테스트하는 경우에는 done 콜백 함수나 async/await를 사용하여 Mocha가 테스트가 완료되었음을 알 수 있도록 해야 합니다. 이렇게 하지 않으면 테스트가 정상적으로 완료되지 않을 수 있습니다.

it('비동기 코드 테스트', (done) => {
  // 비동기 작업 수행
  setTimeout(() => {
    // 테스트 조건을 체크
    expect(result).to.equal(expectedValue);
    done(); // 테스트 완료를 알리기 위해 done 콜백함수 호출
  }, 1000);
});

2. 테스트 스위트 제대로 구성하기

Mocha는 테스트 코드를 그룹화할 수 있는 describe 함수를 제공합니다. 테스트 스위트를 구성하여 관련된 테스트 케이스를 함께 묶어주는 것이 좋습니다. 이를 통해 코드의 가독성을 높이고 유지보수를 용이하게 할 수 있습니다.

describe('테스트 스위트', () => {
  it('첫 번째 테스트', () => {
    // 테스트 코드 작성
  });

  it('두 번째 테스트', () => {
    // 테스트 코드 작성
  });
});

3. Assertion 라이브러리 사용하기

Mocha는 assertion 라이브러리를 기본적으로 제공하지 않습니다. 따라서, 테스트 케이스에서 어떤 assertion 라이브러리를 사용할지 명시적으로 지정해주어야 합니다. 대표적으로 chai 라이브러리를 사용하여 테스트를 작성하는 경우가 많습니다.

const assert = require('chai').assert;

it('assertion 라이브러리 사용', () => {
  assert.equal(result, expectedValue);
});

4. 타임아웃 설정

Mocha는 기본적으로 타임아웃 시간을 2000ms로 설정하고 있습니다. 만약 테스트가 이 시간보다 오래 걸리는 경우 타임아웃 에러가 발생할 수 있습니다. 테스트가 오래 걸리는 경우에는 timeout 함수를 사용하여 타임아웃 시간을 늘려주는 것이 좋습니다.

it('오래 걸리는 테스트', function() {
  this.timeout(5000); // 타임아웃 시간을 5000ms로 설정
  // 오래 걸리는 테스트 작성
});

참고 자료: