이것은 IoC 컨테이너를 사용할 때 일반인이 생성자를 만드는 방법에 대해 약간 난해한 질문입니다. 저는 Java, Guice, Junit4를 사용하고 있습니다. 그러나이 질문이 좀 더 일반적이라고 확신합니다.투입된 생성자, 단위 테스트 및 모범 사례
Guice 문서의 모범 사례에 따르면 "Keep constructors as hidden as possible"이라고되어 있습니다. 이것은 제가 꽤 동의하는 것입니다. 그래서 제 생성자를 비공개로 만들고 Guice에 의지하여 인스턴스화하게되어 기뻤습니다.
그러나 클래스와 단위 테스트를 조롱하는 데 문제가 있습니다. 모든 생성자가 private 인 경우, 어떻게 유닛 테스트에서 무언가를 인스턴스화하고 조롱 된 의존성을 전달할 수 있습니까? 모든 유닛 테스트를위한 새로운 Guice 모듈을 만드는 것이 과도한 것 같습니다. 분명히, 나는 그 생성자를 실제로 공개해야만한다.
DI가 단위 테스트와 결합되었을 때 DI가 유용하다는 점을 감안할 때 Guice 문서의 생성자를 실제로 실수로 숨겨 두는 것에 대한 모범 사례는 무엇입니까?
뜨아 통해 클래스 테스트