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 –