[JUnit] @EnabledIfEnvironmentVariable 다시 보기

snowballnote·2026년 10월 2일

실제 SMTP를 보내는 테스트는
평소 테스트 실행 때마다 돌면 안 됐다.

그래서 이걸 썼다.

@EnabledIfEnvironmentVariable(
        named = "BIZ_ASSIST_SUBSCRIBER_SMTP_LIVE_TEST",
        matches = "true"
)

@EnabledIfEnvironmentVariable은
특정 환경변수가 조건에 맞을 때만 테스트를 실행한다.

이번에는

BIZ_ASSIST_SUBSCRIBER_SMTP_LIVE_TEST=true

일 때만 SMTP Live 테스트가 실행된다.

환경변수가 없거나 값이 다르면
테스트 자체를 건너뛴다.

이게 필요했던 이유는 단순했다.

일반 테스트
→ 자동으로 돌려도 됨

SMTP Live 테스트
→ 실제 메일이 발송됨
→ 명시적으로 실행할 때만 돌아야 함

그래서 테스트 코드 자체에
실행 조건을 걸어뒀다.

이번 테스트에서는 조건을 통과한 뒤에도
실제 메일 발송에 필요한 값들을 한 번 더 확인했다.

String recipient = required("BIZ_ASSIST_LIVE_SUBSCRIBER_EMAIL");

required("BIZ_ASSIST_MAIL_HOST");
required("BIZ_ASSIST_MAIL_PORT");
required("BIZ_ASSIST_MAIL_USERNAME");
required("BIZ_ASSIST_MAIL_PASSWORD");
required("BIZ_ASSIST_MAIL_FROM");

즉 두 단계였다.

실행해도 되는 테스트인가?
→ @EnabledIfEnvironmentVariable

실행에 필요한 설정이 전부 있는가?
→ required(...)

외부 API나 SMTP처럼
진짜 외부 시스템을 건드리는 테스트는

기본적으로 꺼두고 필요할 때만 명시적으로 켜는 방식

으로 사용하면 될 것 같다.

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

0개의 댓글