[javascript] Mocha에서 promise 기반 테스트를 작성하는 방법은?

Mocha는 JavaScript의 테스트 프레임워크로, 비동기 코드를 테스트하는 데 매우 유용합니다. Promise를 기반으로 동작하는 코드를 테스트하기 위해 Mocha를 사용하는 방법에 대해 알아보겠습니다.

  1. 테스트 환경 설정하기 Mocha를 설치하고 테스트 파일을 작성합니다. 필요한 경우, 패키지 관리자를 사용하여 Mocha를 설치할 수 있습니다.

    $ npm install mocha --save-dev
    

    테스트 파일은 .js 확장자로 작성되며, 일반적으로 test 또는 spec 디렉토리에 저장됩니다.

  2. Promise 기반 코드 작성하기 비동기 작업을 수행하는 코드에는 주로 Promise가 사용됩니다. 예를 들어, 다음과 같은 Promise 기반 함수를 작성해보겠습니다.

    function fetchData() {
      return new Promise((resolve, reject) => {
        // 비동기 작업 수행
        setTimeout(() => {
          // 성공적으로 데이터를 가져온 경우
          resolve("Data fetched successfully");
             
          // 데이터를 가져오지 못한 경우
          // reject("Failed to fetch data");
        }, 1000);
      });
    }
    
  3. 테스트 작성하기 Promise 기반 함수를 테스트하기 위해 Mocha에서 it 블록을 사용하여 테스트를 작성합니다.

    describe('fetchData', () => {
      it('should resolve with data fetched successfully', () => {
        // 비동기 작업이 resolve되는지 테스트
        return fetchData()
          .then((result) => {
            assert.equal(result, "Data fetched successfully");
          });
      });
    
      // 실패 케이스 테스트
      it('should reject with an error message when fails to fetch data', () => {
        // 비동기 작업이 reject되는지 테스트
        return fetchData()
          .catch((error) => {
            assert.equal(error.message, "Failed to fetch data");
          });
      });
    });
    
  4. 테스트 실행하기 터미널에서 다음 명령을 실행하여 Mocha를 실행합니다.

    $ mocha
    

    Mocha는 테스트를 실행하고 결과를 터미널에 출력합니다. 테스트가 성공적으로 통과되면 그렇다는 메시지와 함께 통과한 테스트의 수를 보여줍니다. 실패한 테스트의 경우, 에러 메시지와 함께 실패한 테스트의 수를 보여줍니다.

이제 Mocha를 사용하여 Promise 기반 테스트를 작성하는 방법에 대해 알게 되었습니다. Mocha는 다양한 유형의 테스트를 지원하고, assertion 라이브러리와 함께 사용할 수 있어 테스트 코드 작성을 더욱 쉽게 만들어 줍니다.