SpringBootTest에서 생성자 주입 시 @Autowired를 명시해야하는 이유
테스트에서 생성자 주입을 인식하지 못한다? 컨트롤러 테스트 코드 개선을 진행하다 다음과 같은 예외를 발견했습니다. 해당 예외는 테스트를 실행하자마자 발생했고, 내용을 확인해보니 파라미터를 제대로 등록하지 못했다는 내용이 적혀있었습니다. 빈 주입 과정이 올바르게 동작하지 못한다고 생각해 곧바로 테스트 코드의 필드와 생성자 부분을 확인했습니다. 생성자는 하나만 사용하고 있었고, 파라미터로 전달받는 값들 또한 모두 빈으로 등록되어있었습니다. 스프링 빈 생성자 주입 스프링에서 생성자를 하나만 작성하고, 그 파라미터가 모두 빈으로 등록이 되어있다면 @Autowired를 명시하지 않아도 빈 주입이 가능하다고 공식문서에서는 설명하고 있습니다. 실제 Autowired가 명시된 생성자를 찾아서 등록하는 코드는 빈 후처리..
2024.02.25