我正在尝试对方法调用进行 stub ,例如
when(amazonDynamoDBClient.batchWriteItem(anyObject())).thenReturn(batchWriteItemResultMock);
我收到这个错误
Error:(198, 34) java: reference to batchWriteItem is ambiguous
both method batchWriteItem(com.amazonaws.services.dynamodbv2.model.BatchWriteItemRequest) in com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient and method batchWriteItem(java.util.Map<java.lang.String,java.util.List<com.amazonaws.services.dynamodbv2.model.WriteRequest>>) in com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient match
我看不出这是怎么模棱两可的——方法签名不同,即
public BatchWriteItemResult batchWriteItem(BatchWriteItemRequest request) {
和
public BatchWriteItemResult batchWriteItem(Map<String, List<WriteRequest>> requestItems) {
我在这里做错了什么?
最佳答案
您有两个具有相同名称和返回类型的方法,每个方法都有一个参数。所以anyObject()
匹配他们两个。这就是为什么你得到 batchWriteItem is ambiguous
消息。
你可以使用 Mockito.any(Class<T> type)
和 Mockito.anyMapOf(Class<K> keyClazz, Class<V> valueClazz)
以区分它们。
关于java - Mockito 模棱两可的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842568/