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
}

'SpringFramework > JUnit Test' 카테고리의 다른 글

MockMvc get post 테스트  (0) 2021.05.18
단위 테스트 작성 규칙  (0) 2021.03.30
응답값 한글 깨짐  (0) 2021.03.22
JUnit DataJpaTest 단위 테스트 (with vault)  (0) 2021.03.19
Mock Response 객체로 변환  (0) 2020.11.26