HTD
[Spring Boot] 커스텀 어노테이션으로 어노테이션 간소화하기 본문
배경
제가 테스트를 위한 데이터베이스를 따로 두었기 때문에 테스트 코드 클래스마다 아래와 같이 액티브 프로필을 변경하여 DB URL을 변경시켜줘야 했습니다.
하지만 매번 @ActiveProfiles를 등록하는 것이 번거롭고 잊기 쉬워서 개선하고자 했습니다.
어노테이션 정의
아래와 같이 어노테이션을 정의해주었습니다.
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@SpringBootTest
@ActiveProfiles("test")
public @interface ChadTest {
}
@Retention
정책에는 SOURCE, CLASS, RUNTIME가 있습니다. 런타임에 적용해야 하므로 RUNTIME을 지정해주었습니다
@Target
어노테이션을 붙일 수 있는 타겟을 설정할 수 있습니다. class UserServiceTest와 같은 클래스에 붙일 계획이므로 TYPE으로 지정하였습니다.
@SpringBootTest, @ActiveProfiles("test")
@ChadTest를 붙이면 위 어노테이션이 적용됩니다.
어노테이션 적용
References
https://stackoverflow.com/questions/39690094/spring-boot-default-profile-for-integration-tests
'Back-end' 카테고리의 다른 글
AWS와 Docker를 활용한 Spring + React.JS CI/CD 구축: GitHub Actions CI(1) (0) | 2024.08.11 |
---|---|
[Spring Boot] ArgumentResolver로 Controller 간소화하기 (0) | 2024.08.03 |
[Spring Boot] Set-Cookie가 작동하지 않을 때 체크 포인트 (0) | 2024.07.27 |
[AWS] EC2 Instance Setup Cheat Sheet (0) | 2024.07.20 |
[Spring Boot] @NoArgsConstructor(access = AccessLevel.PROTECTED) 사용 이유 (0) | 2024.07.09 |