- Integration Testing을 알아보기 앞서 먼저 단위 테스트에 대해서 알아보자
- 단위 테스트의 정의는 학파마다 다른데 런던파와 고전파로 나뉜다
- 학파별로 단위 테스트와 통합 테스트를 구분하는 기준이 다르다
- 런던파 고전파에 대한 자세한 설명은 Unit-Testing.md 참고
- 런던파 관점에서 실제 협력자 객체를 사용하는 모든 테스트를 통합 테스트로 간주한다
- 고전파 관점의 단위 테스트 정의는 아래와 같다
- 단위 테스트는
- 단일 동작 단위를 검증하고
- 빠르게 수행하고
- 다른 테스트와 별도로 처리한다
- 고전파 관점에서 위 기준 중 하나를 충족하지 못하면 통합 테스트로 간주한다
- 예를 들면
- 공유 의존성(대표적으로 데이터베이스)을 대체하지 않고 테스트하면
다른 테스트와 별도로 처리한다라는 기준을 충족하지 못해 통합 테스트 - 마찬가지로 프로세르 외부 의존성(대부분 공유 의존성)에 접근하면 테스트가 느려져
빠르게 수행하고라는 기준을 충족하지 못해 통합 테스트 - 둘 이상의 동작 단위를 검증하면
단일 동작 단위를 검증하고라는 기준을 충족하지 못해 통합 테스트
- 공유 의존성(대표적으로 데이터베이스)을 대체하지 않고 테스트하면
- 엔드 투 엔드 테스트는 통합 테스트의 일부다
- 엔트 투 엔트라는 명칭은 모든 외부 애플리케이션을 포함해 시스템을 최종 사용자 관점에서 검증하는 것을 의미한다
- 따라서 엔트 투 엔트 테스트가 일반적으로 통합 테스트보다 의존성을 더 많이 포함한다
참고