Skip to content

[Chapter 07] 테스트클래스 빈 주입방식(416p) #68

Discussion options

You must be logged in to vote

테스트클래스 빈 주입방식(416p) 에 대한 질문의 답을 드리고자 합니다.

먼저 테스트 클래스에서의 생성자 빈 주입 에러와 프로덕션 코드에서의 빈 주입 에러에 대해 비교 해 봅시다.

  1. 테스트 클래스 생성자 빈 주입 에러
  • NoParameterResolver 에러가 발생함
  1. 프로덕션 코드에서의 빈 주입 에러
  • NoSuchBeanException 에러가 발생함

자 해당 에러를 확인 해 보면 차이점이 있습니다.
테스트 코드에서 발생하는 에러는 NoParameterResolver, 프로덕션 코드에서의 빈 주입 에러는 NoSuchBeanException입니다.

이는 스프링 빈 주입의 방식이 프로덕션 코드와 테스트 코드간에 다른 방법을 취하고 있기 때문입니다.

생성자 매개변수의 경우 프로덕션 코드라면 Spring IoC 컨테이너가 이를 해결합니다.
스프링 프레임워크의 ApplicationContext는 등록할 빈들을 찾아서 저장했다가 적절한 시점에 빈을 생성자에 주입합니다.

그러나, 테스트 코드는 조금 다릅니다.

테스트 프레임워크에서의 생성자 매개변수 관리는 스프링 컨테이너가 아닌 Jupiter가 담당합니다.
따라서 @Autowired를 명시적으로 선언해야 Jupiter가 Spring Container에게 빈 주입을 요청할 수 있게 됩니다.

테스트 프레임워크에서 프레임워크의 주체는 Jupiter이기 때문에 생성자 주입을 한들 찾…

Replies: 3 comments 1 reply

Comment options

You must be logged in to vote
0 replies
Answer selected by Youngju-Jang
Comment options

You must be logged in to vote
1 reply
@Irisation23
Comment options

Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chapter07 스프링 AOP 와 테스트, 자동 설정 원리
3 participants