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

최재량님의 프로필 이미지
최재량

작성한 질문수

스프링 핵심 원리 - 기본편

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

ObjectProvider의 장점이 이해가 안됩니다

해결된 질문

작성

·

727

5

안녕하세요 선생님 이해가 안되는 부분이 있어 질문드립니다!

"ApplicationContext에 비해 ObjectProvider는 기능이 단순하므로 단위테스트를 만들거나 mock 코드를 만들기는 훨씬 쉬워진다."

라는 말이 이해가 안됩니다..

스프링 없이 순수 자바 코드만으로 단위 테스트할 경우,

테스트할 코드가 ApplicationContext에 의존하던, ObjectProvider에 의존하던 DL 기능을 사용할 수 없는 건 마찬가지 아닌가요?

DL 기능을 구현한다고 하더라도 ApplicationContext이던 ObjectProvider이던 상관없지 않나요?

그래서 ApplicationContext이 아닌 ObjectProvider를 써야하는 이유를 잘 모르겠습니다!

답변 1

20

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 재량님

테스트에서는 가짜 구현체를 만드는 경우가 있습니다.

여기에서 가짜 구현체는 모든 기능이 동작하지 않아도 됩니다. 테스트를 실행하는데 필요한 정도만 동작하면 됩니다.

ApplicationContext를 mock으로 만들려면 그곳에 있는 수 많은 인터페이스를 모두 구현해야 합니다.

반면에 ObjectProvider를 사용하면 그곳에서 제공하는 매우 적은 인터페이스만 구현해도 되므로 mock을 상대적으로 쉽게 만들 수 있습니다.

감사합니다.

최재량님의 프로필 이미지
최재량

작성한 질문수

질문하기