[typescript] 타입스크립트와 유닛 테스트의 연동 방법

타입스크립트(TypeScript)는 정적 타입을 지원하는 JavaScript의 확장이며, 유닛 테스트는 소프트웨어의 각 부분이 의도한 대로 작동하는지 확인하는 데 사용됩니다. 타입스크립트 코드를 유닛 테스트하기 위해서는 몇 가지 설정이 필요합니다.

타입스크립트 프로젝트 설정

먼저, 타입스크립트 프로젝트를 설정해야 합니다. 프로젝트 디렉토리에 tsconfig.json 파일을 만들고 다음과 같이 설정합니다:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "dist",
    "strict": true
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "**/*.test.ts"]
}

이 설정은 타입스크립트 파일을 src 디렉토리에서 찾고, 컴파일된 파일을 dist 디렉토리에 생성하도록 합니다.

유닛 테스트 라이브러리 설치

유닛 테스트를 위해서는 보통 Jest, Mocha, Jasmine 등의 라이브러리를 사용합니다. 예를들어 Jest 라이브러리를 사용한다면, 다음 명령어를 통해 설치할 수 있습니다:

npm install --save-dev jest @types/jest ts-jest

Jest 설정

Jest를 사용하는 경우 jest.config.js 파일을 프로젝트 루트에 만들고 다음과 같이 설정합니다:

module.exports = {
  transform: {
    '^.+\\.tsx?$': 'ts-jest'
  },
  testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
  moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
  collectCoverage: true
};

유닛 테스트 작성

이제 유닛 테스트를 작성할 준비가 되었습니다. 다음은 간단한 예제입니다:

// math.ts
export function add(a: number, b: number): number {
  return a + b;
}
// math.test.ts
import { add } from './math';

test('adds 1 + 2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

이제 npm test 명령어를 통해 유닛 테스트를 실행할 수 있습니다.

위와 같이 설정 및 코드를 작성하면, 타입스크립트 코드를 유닛 테스트할 수 있게 됩니다.

결론

타입스크립트와 유닛 테스트를 결합함으로써 코드의 신뢰성을 높일 수 있습니다. 이러한 방법을 통해 코드 변경에 따른 예기치 않은 오류를 방지하고, 안정적인 소프트웨어를 만들 수 있습니다.

참고자료: Jest 공식 문서