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);
生成的模擬總是返回第二個模擬並忽略第一個,而不管作爲參數傳遞的對象類型如何。
'Bulk'和'Index'之間的關係是什麼?一個擴展另一個嗎? – Mureinik
它們都是同一個超類的子類。 –
這些'execute'方法是否覆蓋了在接口上定義的方法?特別是一個通用的? –