[Spring Test] @SpringBootTest 다시 보기

snowballnote·2026년 10월 2일

SMTP 실제 발송 테스트 만들면서 다시 본 @SpringBootTest.

@SpringBootTest
class NotificationSubscriberSmtpLiveIntegrationTests {
}

이걸 붙이면 테스트할 때 Spring Context를 올려서
실제 애플리케이션에서 쓰는 Bean들을 같이 사용할 수 있다.

이번 테스트는 메서드 하나만 확인하는 게 아니라

수신자 등록
→ 공지 생성
→ 알림 후보 생성
→ SMTP 발송
→ 발송 상태 저장

이 흐름이 실제로 이어지는지 확인해야 했다.

그래서 단위 테스트보다 @SpringBootTest가 맞았다.

단위 테스트와 비교하면 대충 이렇게 기억하면 될 것 같다.

단위 테스트
특정 클래스나 로직만 확인
빠름

@SpringBootTest
Spring Context를 올림
여러 Bean이 연결된 흐름 확인
상대적으로 무거움

DB는 실제 데이터를 건드리지 않게 테스트용 H2를 따로 사용했다.

@SpringBootTest(properties = {
    "spring.datasource.url=jdbc:h2:mem:subscriber-smtp-live;DB_CLOSE_DELAY=-1"
})

여기서 좀 헷갈렸던 건
@SpringBootTest라고 해서 무조건 모든 걸 실제 환경으로 테스트하는 건 아니라는 점.

이번에는

Spring Bean 연결 → 실제
SMTP → 실제
DB → 테스트용 H2

이렇게 필요한 부분만 실제 환경에 가깝게 붙였다.

결국 @SpringBootTest는
Spring 안에서 여러 기능이 연결됐을 때도 제대로 돌아가는지 보고 싶을 때 쓰는 테스트로 기억해두면 될 듯.

profile
개발자로 이 험난한 세상 살아가기

0개의 댓글