0
나는 다음 스키마Mockito 모의 오버로드 된 메서드
JestClient {
DocumentResult execute(Index x) {...}
BulkResult execute(Bulk y) {...}
}
나는 모의 객체를 만들려면 다음 코드를 사용하는 오버로드 된 메서드를 조롱하려합니다.
JestClient client = Mockito.mock(JestClient.class);
DocumentResult setResult = Mockito.mock(DocumentResult.class);
when(setResult.isSucceeded()).thenReturn(true);
BulkResult bulkResult = Mockito.mock(BulkResult.class);
when(bulkResult.isSucceeded()).thenReturn(true);
// when(client.execute(Mockito.any(Index.class))).thenReturn(setResult);
// when(client.execute(Mockito.any(Bulk.class))).thenReturn(bulkResult);
doReturn(setResult).when(client).execute(Mockito.any(Index.class));
doReturn(bulkResult).when(client).execute(Mockito.any(Bulk.class));
JestClientFactory factory = Mockito.mock(JestClientFactory.class);
when(factory.getObject()).thenReturn(client);
결과 모의는 항상 두 번째 모의를 반환하고 매개 변수로 전달 된 개체 유형에 관계없이 첫 번째 모크를 무시합니다.
'대량'과 '색인'사이의 관계는 무엇입니까? 하나는 다른 하나를 확장합니까? – Mureinik
둘 다 동일한 수퍼 클래스의 서브 클래스입니다. –
인터페이스에 정의 된 메소드를'execute' 메소드로 대체합니까? 특히 일반적인 하나? –