Mockito模糊的方法调用

时间:2017-06-30 08:59:21

标签: java junit mockito

我试图找出一个方法调用,例如

when(amazonDynamoDBClient.batchWriteItem(anyObject())).thenReturn(batchWriteItemResultMock);

我收到此错误

错误:(198,34)java:对batchWriteItem的引用不明确   com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient中的方法batchWriteItem(com.amazonaws.services.dynamodbv2.model.BatchWriteItemRequest)和com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient匹配中的方法batchWriteItem(java.util.Map>)

我无法看出这是多么模糊 - 方法签名是不同的,即

public BatchWriteItemResult batchWriteItem(BatchWriteItemRequest request) {

public BatchWriteItemResult batchWriteItem(Map<String, List<WriteRequest>> requestItems) {

我在这里做错了什么?

2 个答案:

答案 0 :(得分:12)

您有两个具有相同名称和返回类型的方法,每个方法都有一个参数。所以anyObject()匹配它们。这就是你收到batchWriteItem is ambiguous消息的原因。

您可以使用Mockito.any(Class<T> type)Mockito.anyMapOf(Class<K> keyClazz, Class<V> valueClazz)来区分它们。

供参考的文档:anyanyMapOf

答案 1 :(得分:0)

对我来说,使用isA()解决了该问题。

文档:IsA