Mocha, Chai를 활용한 nodejs 기반 웹 서버 개발 테스트 환경 개선 도전

김경진·2022년 8월 3일
0

발단

  • 지금 제가 일하는 회사에서 소스를 수정하고 테스트를 하는 과정은 아래와 같습니다.
  1. 로컬 소스 수정
  2. 로컬 서버 실행
  3. api 실행 : postman || (ui에서 이벤트 발생)
  4. 원하는 값이 나오는 지 확인
  5. 아니라면 디버그 시작 : 2~4 반복
  6. 원하는 값이 나오면 git push
  • 하지만 매번 소스를 한 줄 수정하고 인터넷을 켜서 ui event를 발생시키던가 postman으로 api 요청하는 것이 여간 귀찮은 것이 아닙니다.

  • 그러던 와중 테스트를 위한 좋은 방법을 알게 되어 바로 적용했습니다.

Mocha, Chai

나만의 사용법

  • 당장 필요한 것은 수정된 qeury문에 대한 테스트입니다.

  • query문의 parameter와 qeury문을 실행하는 소스를 넣고 테스트를 진행합니다.

1. install mocha, chai

npm install mocha chai --save-dev

2. js 파일 생성

3. 테스트 케이스 생성

const assert = require('chai').assert;
const app = require('../appMocha');

describe('App', function() {
    it('app should return hello', function() {
        assert.equal(app.sayHello(), 'hello');
    });
});

테스트 케이스 생성 코드 설명

  • mocha와 함께 install한 chai를 통해 assert를 이용합니다.
  • 테스트 대상이 되는 파일을 불러옵니다.
  • decribe를 통해 테스트 케이스들을 그룹화합니다.
  • it을 통해 테스트 케이스를 만듭니다.
  • assert를 통해 대상 소스가 올바른 행위를 하는지 확인합니다.

4. 테스트

  • package.json 파일 내 scripts 항목 내 아래 코드를 추가합니다.
  "scripts": {
    "start": "node ./bin/www",
    "test": "mocha || true"
  },
  • 아래 명령어로 테스트를 진행합니다.
npm run test
  • 결과를 확인합니다.

변경될 테스트 과정

  1. 로컬 소스 수정
  2. mocha로 테스트 : 테스트 케이스 추가가 필요하면 추가
  3. 통과하지 못한 테스트 케이스에 대한 소스 수정
  4. 원하는 값이 나오면 git push

마무리

  • Mocha를 적용하게 되면서 번거롭게 postman을 실행하거나 ui를 실행하여 event를 발생시키는 번거로운 테스트 과정이 축소됐습니다.

  • 당장 이미 만들어진 소스들의 테스트 케이스를 전부 추가하지는 못하지만 앞으로 버그를 처리해야 할 일이 있으면 해당 api에 대한 테스트 케이스를 작성하는 방법을 사용하려고 합니다.

0개의 댓글