[javascript] Mocha란 무엇인가?

Mocha는 BDD(Behavior Driven Development)와 TDD(Test Driven Development) 스타일 모두를 지원하며, 사용하기 쉽고 확장 가능한 테스트 코드 작성을 위한 다양한 어설션 라이브러리(Assertion Library)와 함께 사용할 수 있습니다. 테스트 코드 작성을 위한 명령적이고 간결한 구문을 제공하며, 비동기 코드 및 프로미스(Promise) 테스트에 대한 내장 지원도 제공합니다.

Mocha의 강력한 기능 중 하나는 다양한 리포팅 포맷을 지원한다는 것입니다. 테스트 실행 결과를 보고서 형식으로 출력하는 다양한 리포터(Reporter)를 설정할 수 있어, 테스트 결과를 보다 시각적으로 확인하고 이해할 수 있습니다.

아래는 Mocha를 사용하여 간단한 테스트를 작성하는 예제입니다:

const assert = require('assert');
const { add, multiply } = require('./math');

describe('Math', () => {
  describe('add', () => {
    it('should return the sum of two numbers', () => {
      assert.strictEqual(add(2, 3), 5);
      assert.strictEqual(add(-1, 1), 0);
    });
  });

  describe('multiply', () => {
    it('should return the product of two numbers', () => {
      assert.strictEqual(multiply(2, 3), 6);
      assert.strictEqual(multiply(-1, 5), -5);
    });
  });
});

위의 코드에서 describe 함수는 테스트 스위트를 정의하고, it 함수는 테스트 케이스를 정의합니다. assert 모듈을 사용하여 기대하는 값과 실제 값을 비교하여 테스트를 수행합니다. Mocha는 이러한 테스트 코드들을 식별하고 실행하여 결과를 출력합니다.

Mocha는 다른 테스트 러너와 함께 사용할 수도 있습니다. 예를 들어, Chai와 함께 사용하여 더 다양한 어설션 스타일을 적용할 수 있습니다.

자세한 정보 및 사용 예제는 Mocha 공식 문서를 참고하시기 바랍니다.