NodeJS 라이브러리

Mocha: Node.js를 위한 테스트 프레임워크의 시작

ReactRoster 2024. 12. 3. 22:06
SMALL

Mocha: Node.js를 위한 테스트 프레임워크의 시작

소프트웨어 개발에서 테스트는 필수적인 과정입니다. Mocha는 Node.js 환경에서 동작하는 유연하고 직관적인 테스트 프레임워크로, 단위 테스트, 통합 테스트 등 다양한 테스트를 쉽게 작성할 수 있도록 도와줍니다. 이번 포스팅에서는 Mocha의 주요 기능과 사용법을 알아보겠습니다.

1. Mocha란?

Mocha는 Node.js 환경에서 동작하는 JavaScript 테스트 프레임워크입니다. 다양한 테스트 스타일과 기능을 제공하며, 비동기 코드 테스트에 최적화되어 있습니다.

Mocha의 주요 특징

  • BDD(Behavior Driven Development) 및 TDD(Test Driven Development) 지원.
  • 비동기 테스트 지원.
  • 다양한 리포터를 통해 결과를 시각적으로 확인.
  • 플러그인과 함께 유연한 확장 가능.

2. Mocha 설치

Mocha를 사용하려면 프로젝트에 설치해야 합니다.

프로젝트에 Mocha 설치

npm install mocha --save-dev

전역 설치 (옵션)

전역 설치를 통해 명령어를 편리하게 사용할 수 있습니다.

npm install -g mocha

3. Mocha 테스트 기본 설정

Mocha는 기본적으로 test 디렉토리를 검색하여 테스트 파일을 실행합니다. 아래와 같은 구조를 가정합니다.


my-project/
├── test/
│   └── example.test.js
├── package.json
└── index.js

4. Mocha 테스트 작성 및 실행

기본 테스트 작성 (example.test.js)


const assert = require('assert');

describe('Array', function () {
    describe('#indexOf()', function () {
        it('should return -1 when the value is not present', function () {
            assert.strictEqual([1, 2, 3].indexOf(4), -1);
        });
    });
});

실행:

npx mocha

출력 예제:


  Array
    #indexOf()
      ✓ should return -1 when the value is not present

  1 passing (10ms)

5. 주요 Mocha API

describeit

  • describe: 테스트 그룹을 정의.
  • it: 테스트 케이스를 정의.

describe('Math Operations', function () {
    it('should add numbers correctly', function () {
        const sum = 2 + 3;
        assert.strictEqual(sum, 5);
    });

    it('should subtract numbers correctly', function () {
        const diff = 5 - 3;
        assert.strictEqual(diff, 2);
    });
});

before, after, beforeEach, afterEach

테스트 실행 전후에 특정 작업을 설정할 수 있습니다.


let value;

before(function () {
    value = 10; // 테스트 전 초기화
});

beforeEach(function () {
    value += 1; // 각 테스트 실행 전 값 증가
});

after(function () {
    value = 0; // 테스트 종료 후 정리
});

it('should add correctly', function () {
    assert.strictEqual(value, 11); // 10 + 1
});

it('should add again correctly', function () {
    assert.strictEqual(value, 12); // 11 + 1
});

 

10. 결론

Mocha는 Node.js 환경에서 테스트를 간단하고 효율적으로 작성할 수 있도록 도와주는 프레임워크입니다. 특히 비동기 코드 테스트에 강력하며, Chai와 같은 Assertion 라이브러리와 결합하면 더욱 풍부한 테스트 환경을 구축할 수 있습니다.

Mocha 공식 문서: https://mochajs.org

여러분은 Mocha를 어디에 활용하고 싶으신가요? 댓글로 공유해주세요! 🧪

LIST