의존 서비스를 준비하기
외부 데이터베이스를 사용하는 검사는 개발자마다 수동으로 준비한 환경 때문에 차이가 생길 수 있다. Testcontainers는 테스트에 필요한 인스턴스를 컨테이너로 구성하는 흐름을 제공한다. 실제 서비스를 쓰는 통합 검사에 유용하지만 테스트가 실행되는 곳에는 호환되는 컨테이너 실행 환경이 있어야 한다.
시작과 준비의 차이
컨테이너 프로세스가 실행 중이어도 서비스가 요청을 처리할 준비는 끝나지 않았을 수 있다. 시작 확인 전략은 프로세스 상태를 보고 대기 전략은 검사에 필요한 상태를 확인한다. 포트가 열렸는지 외에 HTTP 응답이나 건강 상태, 로그 조건 등을 사용할 수 있다. 일회성 명령 컨테이너는 정상 종료가 성공이라는 점도 다르다.
환경 재현의 범위
이미지와 설정, 초기 데이터를 일정하게 관리해야 실행을 재현하기 쉽다. 시작 비용이나 네트워크, 실행 자원 제한도 검사 시간에 영향을 준다. 컨테이너 격리만으로 외부 연결과 공유 데이터가 모두 분리되는 것은 아니다. 운영 환경의 다중 노드 동작이나 장애 특성은 별도 검증하고, 대역을 사용하는 단위 검사와 목적을 나눠 사용한다.