Spring Boot와 JUnit 테스트 Bean과 멤버변수 초기화 순서
moonyoung edited this page Jul 14, 2020
·
4 revisions
상황
KakaoProperties
를 주입받는 KakaoPlaceCaller
를 Test에서 사용하고자 함
(KakaoProperties
, KakaoPlaceCaller
: Bean)
기존 코드 (오류)
@SpringBootTest
class KakaoTest {
@Autowired
private KakaoProperties kakaoProperties; // (1)
private KakaoPlaceCaller kakaoPlaceCaller = new KakaoPlaceCaller(kakaoProperties); // (2)
@Test
void test() {
// do something
}
기대한 실행 순서
(1) -> (2)
실제 실행 순서
(2) -> (1)
-
KakaoPlaceCaller
에서KakaoProperties
이 null이여서 오류 발생
수정한 코드
@SpringBootTest
class KakaoTest {
@Autowired
private KakaoProperties kakaoProperties;
private KakaoPlaceCaller kakaoPlaceCaller;
@BeforeEach()
void setUp() {
kakaoPlaceCaller = new KakaoPlaceCaller(kakaoProperties);
}
혹은
@SpringBootTest
class KakaoTest {
@Autowired
private KakaoPlaceCaller kakaoPlaceCaller;
..
}
기타 참고
생성 순서: static -> 멤버변수 -> 생성자 -> @Autowired
- Jenkins CI/CD 적용하기
- Nginx 적용하기
- docker로 jenkins설치 시 플러그인 설치오류 해결방법
- 데이터베이스 마이그레이션
- Logback, Error 로그 Slack 알림 받기
- Jacoco 적용하기
- SonarQube 적용하기