SpringFramework/JUnit Test
단위테스트시 @value 값 주입 방법
lovineff
2021. 5. 10. 14:19
SpringBootTest 어노테이션이 없는 단위 테스트시 @value값이 주입되지 않는 경우가 발생한다.
아래 코드를 추가하면 설정파일을 자동으로 읽어와 @value에 주입한다.
@ContextConfiguration(
initializers = {ConfigFileApplicationContextInitializer.class}
)
예제
@SpringBootTest 미사용시
@DisplayName("Redis 기본 기능 테스트")
@ActiveProfiles(profiles = "local")
@ExtendWith(SpringExtension.class)
@ContextConfiguration(
initializers = {ConfigFileApplicationContextInitializer.class}, // application.yml 파일을 읽어온다.
classes = {RedisCacheConfig.class} // @value 사용 클래스
)
class CacheServiceTest {
// some codes
}
@SpringBootTest 어노테이션 사용시
@DisplayName("Redis 기본 기능 테스트")
@ActiveProfiles(profiles = "local")
@SpringBootTest(classes = {RedisCacheConfig.class}) // @ExtendWith(SpringExtension.class)을 포함한다.
class CacheServiceTest {
// some codes
}