프로그래밍/Typescript

[typescript] typscript에서 테스트 모듈(jest) 적용

일단개그하다 2019. 6. 9. 16:02

이전 포스팅인 "vscode에서 typescript 프로젝트 생성"에서 생성한 프로젝트에서 시작

 

[typescript] vscode에서 typescript 프로젝트 생성

프로젝트를 만들 디렉터리를 생성한 후 $ yarn init 명령어로 package.json파일을 생성한다 $ yarn add --dev typescript tsc @types/node typescript를 위한 모듈을 추가한다 테스트용 임시 코드를 작성 한다..

choiyb2.tistory.com


class Car {
  private name: string;

  constructor(name: string) {
    this.name = name;
  }
  toString(): string {
    return `name : ${this.name}`;
  }
}

export default Car;

특정 클래스를 대상으로 테스트를 하기 위해서 프로젝트에서 index.ts에 작성된 Car 클래스를 별도의 파일로 분리한다

 

yarn add --dev jest ts-jest @types/jest

 

위 명령어를 입력한다

 

{
  "name": "typescript-vscode",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "devDependencies": {
    "@types/jest": "^24.0.13",
    "@types/node": "^12.0.7",
    "jest": "^24.8.0",
    "ts-jest": "^24.0.2",
    "tsc": "^1.20150623.0",
    "typescript": "^3.5.1"
  },
  "scripts": {
    "test": "jest"
  },
  "jest": {
    "transform": {
      "^.+\\.ts$": "ts-jest"
    },
    "testRegex": "\\.test\\.ts$",
    "moduleFileExtensions": [
      "ts",
      "js"
    ],
    "globals": {
      "ts-jest": {
        "enableTsDiagnostics": true
      }
    }
  }
}

테스트를 실행하기 위해서 package.json에 jest 관련 설정을 추가한다

 

import Car from '../src/car';

describe('Car', () => {
  test('toString', () => {
    const myCar: Car = new Car('MY_CAR');

    expect(myCar.toString()).toBe('name : MY_CAR');
  });
});

프로젝트의 루트 디렉터리에 test 디렉터리를 만들고 car.test.ts 파일을 생성하여 테스트 코드를 작성한다

yarn test

명령어를 실행하면 package.json에 등록된 설정에 따라 테스트가 실행된다