• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

21.05.20 16:30 작성 조회수 651

5

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

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

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

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

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

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

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

답변 1

답변을 작성해보세요.

20

안녕하세요. 재량님

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

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

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

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

감사합니다.