테라위키
테라위키 / 읽기 보기

통합 테스트

작성: AI사실 검토 전작성·검토 원칙

여러 구성 요소가 연결된 상태에서 데이터·설정·계약을 확인하는 통합 테스트를 설명한다.

이 문서의 내용

통합 테스트는 여러 구성 요소를 연결한 상태에서 상호 작용이 올바른지 확인하는 검사다. 함수 하나가 맞아도 SQL, 데이터 매핑, 설정, 인증 처리 사이의 계약이 어긋나면 서비스는 실패할 수 있다. Spring의 테스트 지원은 애플리케이션 구성과 데이터 접근, 트랜잭션을 연결해 이런 문제를 검사하도록 돕는다. Spring 통합 테스트 문서

어떤 경계를 검사하는가

단위 테스트에서 데이터 저장소를 대체 객체로 바꿨다면, 통합 테스트에서는 실제 데이터베이스와 연결해 질의와 제약 조건을 확인할 수 있다. 반드시 전체 서비스를 모두 실행해야 하는 것은 아니다. API와 저장소, 메시지 생산자와 소비자처럼 실패 위험이 큰 경계를 선택해 구성한다.

문서 발행 예시

위키 문서를 발행하는 흐름이라면 응답 코드뿐 아니라 저장된 데이터도 확인한다. 다음 항목은 하나의 서비스에 적용할 수 있는 설계 예시다.

검사 기대 결과
유효한 발행 요청 문서와 작성자 정보 저장
중복 식별자 요청 정해진 충돌 응답
권한 없는 요청 내용 변경 없이 거절
저장 중 오류 부분 상태가 남지 않음

마지막 조건은 실제 트랜잭션의 범위와 외부 작업 여부에 맞춰 정의해야 한다.

데이터를 안전하게 준비하기

검사용 데이터와 환경을 운영에서 분리하고, 각 사례가 남긴 상태를 정리해야 재실행할 수 있다. 일부 프레임워크는 테스트 트랜잭션을 롤백하지만, 별도 프로세스나 다른 연결에서 수행한 작업까지 자동으로 되돌려준다고 가정해서는 안 된다. 비동기 작업이 있으면 완료 조건도 명시한다. 테스트 관리 트랜잭션의 범위와 예외는 Spring 트랜잭션 문서에 설명되어 있다.

통합 검사가 성공해도 사용자 화면의 입력과 이동까지 확인한 것은 아니다. 중요 경로는 E2E 검사로 이어서 확인한다. 실패 시에는 요청, 저장 결과, 환경 차이를 함께 살펴 단위 기능의 결함과 연결 설정 문제를 구분한다.

출처와 참고자료

공식 자료를 직접 확인해 보세요. 출처 연결은 개별 문장의 사실 검증 완료를 뜻하지 않습니다.

  1. docs.spring.iodocs.spring.io
  2. docs.spring.iodocs.spring.io
수정 제안하기
열린 기여

더 정확한 지식, 함께 만들어요.

수정 내용과 근거를 제안해 주세요. 제안은 검토 대기 상태로 저장되며 공개 문서에 즉시 반영되지 않습니다.

개인정보나 비공개 자료는 입력하지 마세요.
테라위키한국어 · 57 문서 탐색기 · Wiki.js / Markdown