**integration test(통합 테스트)**는 여러 컴포넌트나 unit이 함께 올바르게 동작하는지 검증합니다 — 상호작용과 통합 지점(코드와 데이터베이스, 서로 호출하는 서비스, 결합된 모듈 등)을 테스트합니다. unit을 격리하는 단위 테스트가 놓치는 문제를 포착합니다.
integration test가 검증하는 것
integration test는 격리가 아닌, 함께 동작하는 컴포넌트를 검증한다:
→ 코드 + 데이터베이스 (데이터 계층이 실제 DB와 정말 동작하는가?)
→ 서비스 A가 서비스 B / 외부 API를 호출
→ 결합된 여러 모듈/unit; 그것들 사이의 통합 지점
→ 부분들이 어떻게 상호작용하는지에서의 문제 포착 — 격리된 단위 테스트가 못 잡는 것.
integration test가 중요한 이유 (단위 테스트 대비)
단위 테스트는 unit을 격리(의존성 mocking) → 빠르지만 실제 통합을 검증하지 못함:
→ unit이 자체 테스트는 통과해도 결합 시 실패할 수 있음 (의존성에 대한 잘못된 가정,
잘못된 실제 DB 쿼리, API 계약 불일치, 설정 문제)
integration test는 실제(또는 현실적) 의존성을 사용 → 이런 상호작용 버그 포착:
→ 배선/설정 오류, 데이터 계층 문제, 컴포넌트 간 계약 불일치
→ integration test는 부분들이 실제로 함께 동작하는지 검증한다.
