인프런 커뮤니티 질문&답변

sy k님의 프로필 이미지
sy k

작성한 질문수

스프링 핵심 원리 - 기본편

프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결

단위 테스트 관련 질문

해결된 질문

작성

·

249

1

안녕하세요 강의를 쭉 듣다가 단위테스트가 어렵다는 단점이 잘 이해가 가지 않아 질문드려봅니다.

예를 들어 빈스코프 파트-DL 부분 중 스프링 컨테이너를 주입하여 프로토타입 빈을 계속 새롭게 생성했때 - 단점이 스프링 컨테이너에 종속적이어서 단위테스트가 어려운것으로 설명이 되어 있습니다.

여기에서 다른 부분에서도 (의존성 필드 주입) 단위테스트가 어렵다 이런부분이 나오는데, 이것이 왜 어려운 것인지 잘 모르겠습니다.

DL 방식 중 Provider 를 사용하지 않고 스프링 컨테이너를 필드에 저장해서 새로운 프로토타입 빈을 생성하는 방법 역시 필드에 @Autowired 해서 의존성 주입을 받는데, 이것이 필드 주입때문에 단위테스트가 어렵다고 연계되는것일까요?

답변 1

4

안녕하세요. sy k님, 공식 서포터즈 David입니다.

필드주입의 경우 의존관계를 주입 받으려면 반드시 스프링 컨테이너를 필요로 합니다.

단위테스트의 경우 스프링 컨테이너를 로드하지 않은 상태에서 테스트를 수행하게 되는데, 이때 테스트 대상의 필드가 필드주입을 사용하고 있다면 의존관계를 주입받지 못하므로 테스트할 수 없게 됩니다.

따라서, 생성자 주입이나 수정자 주입을 사용하여 스프링 컨테이너 없이도 의존관계를 주입하는 방식을 사용하는 것이 테스트에 용이한 코드라고 볼 수 있습니다.

감사합니다.

sy k님의 프로필 이미지
sy k

작성한 질문수

질문하기