Devhyun

메뉴

현재 화면 위치

데브현 메인 블로그 포스트

타이틀

NodeJS Mocha테스트에서 ES6 문법 사용하기

2019.11.25
핫한

이번에 소개하는 글은 테스트환경을 구축하면서 발생했던 이슈입니다.
Devhyun에서는 ES6 문법을 사용하고 있습니다.

테스트 코드 또한 자연스럽게 import 구문을 사용하여 모듈을 불러왔는데요..
아래와 같은 에러가 반겨줍니다.

import { expect } from "chai";
       ^
SyntaxError: Unexpected token {
    at Module._compile (internal/modules/cjs/loader.js:723:23)
생략...

import 구문이 잘 작동하지 않는 것 같군요..

예전에 typescript에서 테스트코드를 작성했을 때 mocha를 실행할 때 ts-node/register 레지스터를 등록해주면 잘 작동했던 기억을 가다듬어 관련 모듈을 찾아보았습니다.

@babel/register

@babel/register는 모듈을 결합할 때 사용되는 훅 모듈입니다.
해당 모듈은 운영환경을 위한 모듈은 아니지만 테스트 환경에서는 충분히 사용할 수 있어요.

먼저 모듈을 설치해 주세요.

npm i --save-dev @babel/register

다음은 package.json의 script의 test 부분을 수정해 주세요.

{
  "scripts": {
    "start": "@babel-node index.js",
    "test": "mocha -r @babel/register test.spec.js"
  },
}

image.png

이제 ES6 문법을 테스트코드에서도 사용할 수 있게 되었습니다 !

마치며

아리송한 Babel이지만 하나하나 조금씩 하다 보니 서서히 익숙해지고 있는 느낌입니다.
이제 require는 보내주고 import로 모던한 자바스크립트 코딩과 테스트를 해보시는걸 추천드립니다!

0개의 댓글

로그인을 하시면 댓글을 작성할 수 있어요 !
목록으로 가기