응용 프로그램 전체에 MongoClient
의 단일 인스턴스가 있기 때문에 (예 : MongoDB 설명서에 따라) 싱글 톤을 선택할 필요가 없습니다.
참고 : JUnit보다는 통합 테스트가 될 것이기 때문에 테스트에서 실제 DB에 연결하고 싶지는 않습니다. 단지 MongoClient
이 예상 매개 변수로 초기화되었는지 확인하고 싶습니다. 나는 이것을 PockerMockito로 어떻게 할 수 있습니까?
응용 프로그램 전체에 MongoClient
의 단일 인스턴스가 있기 때문에 (예 : MongoDB 설명서에 따라) 싱글 톤을 선택할 필요가 없습니다.
참고 : JUnit보다는 통합 테스트가 될 것이기 때문에 테스트에서 실제 DB에 연결하고 싶지는 않습니다. 단지 MongoClient
이 예상 매개 변수로 초기화되었는지 확인하고 싶습니다. 나는 이것을 PockerMockito로 어떻게 할 수 있습니까?
다음 예는 어떻게 모의 PowerMockito와 Mockito를 사용하는 방법을 보여줍니다 감사 당신의 MongoConnection.getMongoClient()
:
@RunWith(PowerMockRunner.class)
@PrepareForTest({MongoConnection.class})
public class ATest {
@Test
public void aTestWhichRequiresMockingMongoConnection() {
MongoClient mongoClient = Mockito.mock(MongoClient.class);
PowerMockito.mockStatic(MongoConnection.class);
Mockito.when(MongoConnection.getClient()).thenReturn(mongoClient);
// set up some expectations on the mocked MongoClient returned by MongoConnection
Mockito.when(mongoClient.getDatabase("aDatabaseName")).thenReturn(...);
// ... etc
}
}
이 클래스에 대한 확인
이 :
(MongoDB를 문서에 따라) 응용 프로그램을 통해 MongoClient의 단일 인스턴스가있을 것이기 때문에 내가 싱글 톤 이상 선택의 여지가 없어.
... 귀하의 MongoClient
을 정적으로 지정하지 않아도됩니다. getClient()
을 정적이 아닌 메소드로 만들 수 있으며 MongoConnection
이 싱글 톤인지 확인하십시오. 즉, 애플리케이션에 인스턴스가 하나만 존재해야합니다. 의존성 주입 솔루션 (예 : Spring, Guice)에는 의존성을 싱글 톤으로 구성 할 수 있도록하는 내장 된 지원 기능이 있습니다.