[typescript] 타입스크립트와 Jest에서의 테스트 수트(Suite) 분리 및 그룹화 방법

테스트 코드 작성 시, 테스트들을 효율적으로 관리하고 구성하는 것은 매우 중요합니다. Jest를 사용하여 타입스크립트(TypeScript)로 작성된 프로젝트의 테스트 코드를 작성할 때, 테스트를 여러 그룹으로 나누고 관리하는 방법에 대해 알아보겠습니다.

1. 테스트 수트(Suite) 분리

일반적인 방법으로는 테스트 수트를 파일 또는 폴더 단위로 분리하여 구성할 수 있습니다. 예를 들어, user.test.ts라는 테스트 파일에는 사용자 관련 테스트를, product.test.ts에는 제품 관련 테스트를 작성할 수 있습니다.

이를 위해서는 describe 함수를 사용하여 테스트 수트를 정의하고, 해당 수트 내에 test 함수를 사용하여 테스트 케이스를 작성합니다.

// user.test.ts
describe('사용자 관련 기능', () => {
  test('사용자 생성', () => {
    // ...
  });

  test('사용자 조회', () => {
    // ...
  });
});
// product.test.ts
describe('제품 관련 기능', () => {
  test('제품 추가', () => {
    // ...
  });

  test('제품 조회', () => {
    // ...
  });
});

2. 그룹화 및 태깅

테스트 기능이 복잡해지거나 다양한 환경에서 실행해야 할 때, 테스트를 그룹화하고 필요에 따라 그룹을 선택적으로 실행하는 것이 유용합니다. Jest에서는 --testPathPattern 옵션을 사용하여 특정 패턴에 맞는 테스트만 실행할 수 있습니다. 이를 사용하여 테스트를 그룹화하고, 필요한 테스트만 선택적으로 실행할 수 있습니다.

// package.json
"scripts": {
  "test": "jest",
  "test:users": "jest --testPathPattern=user",
  "test:products": "jest --testPathPattern=product"
}

위와 같이 package.json 파일에 스크립트를 추가하여 원하는 그룹의 테스트만 선택적으로 실행할 수 있습니다. 이러한 방식으로 테스트를 그룹화하여 유연하게 실행할 수 있습니다.

Jest Config 파일에서 projects 설정을 사용하여 여러 그룹으로 테스트를 나누어 실행할 수도 있습니다.

결론

타입스크립트와 Jest를 사용하여 효율적으로 테스트를 구성하는 방법에 대해 알아보았습니다. 테스트 수트를 파일 또는 폴더 단위로 분리하고, 그룹화하여 관리함으로써 테스트 코드를 보다 체계적으로 유지할 수 있습니다.