[typescript] 타입스크립트 단위 테스트 작성 시 통합 테스트와의 차이점

소프트웨어 개발에서 테스트는 중요한 부분입니다. 특히, 타입스크립트 애플리케이션의 테스트에 대해 고려해야 합니다. 타입스크립트로 작성된 코드를 테스트할 때 주로 사용되는 두 가지 유형인 단위 테스트와 통합 테스트에 대해 알아봅시다.

단위 테스트

단위 테스트는 개별 구성 요소, 예를 들면 함수나 모듈 같은 작은 단위의 코드를 테스트합니다. 이러한 테스트는 해당하는 코드 조각이 기대한 대로 동작하는지 확인하는 데 중점을 둡니다. 단위 테스트는 모의(mock)나 스파이(spy)와 같은 테스트 더블(test double)을 활용하여 외부 의존성을 가짜로 대체하고 코드의 특정 부분에 초점을 맞춥니다.

// 예시: 단위 테스트
import { add } from './math';

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

통합 테스트

통합 테스트는 단위 테스트와 달리 여러 개의 모듈이나 컴포넌트를 함께 테스트합니다. 이러한 테스트는 이러한 모듈 또는 컴포넌트 간의 상호 작용과 통합에 초점을 맞춥니다. 통합 테스트는 실제 의존성을 사용하여 애플리케이션이 기대한 대로 작동하는지 확인합니다.

// 예시: 통합 테스트
import request from 'supertest';
import app from '../app';

test('get user information', async () => {
  const response = await request(app).get('/user/123');
  expect(response.status).toBe(200);
  expect(response.body.username).toBe('john_doe');
});

결론

단위 테스트는 코드의 작은 부분을, 통합 테스트는 여러 구성 요소를 함께 테스트합니다. 두 가지 종류의 테스트를 모두 사용하여 소프트웨어에서 버그를 최소화하고 안정성을 높일 수 있습니다.

참고: 타입스크립트 단위 테스트 및 통합 테스트