2
我想模擬一個方法,它需要一個地圖和其他參數作爲參數。我的目標是匹配地圖條目。 本來我定義我的嘲笑爲:使用Mockito的arg該匹配器導致「方法模糊的類型」錯誤
when(discoveryJobCatalogResourceAccessor.findResource(argThat(allOf(hasEntry("start", "testStart"), hasEntry("level", "testLevel"))), any(Integer.class),
any(Integer.class), any(String.class), any(String.class))).thenReturn(searchResponse);
這會導致以下錯誤:
"The method findResource(Map<String,String>, Integer, Integer, String, String) is ambiguous for the type DiscoveryJobCatalogResourceAccessor"
當我與any(HashMap.class)
取代argThat
這樣的:
when(discoveryJobCatalogResourceAccessor.findResource(any(HashMap.class), any(Integer.class),
any(Integer.class), any(String.class), any(String.class))).thenReturn(searchResponse);
錯誤了,但在這種情況下,我無法匹配地圖值。似乎Mockito的argThat
造成歧義。我想知道是否有辦法使用argThat
而不會導致錯誤?
就是這樣。問題解決了。感謝yoy – MrkK
@MrkK不要忘記將其標記爲已接受。如果你是新來的,不知道如何接受答案,請閱讀http://stackoverflow.com/tour –