繁体   English   中英

Mockito 不明确的方法调用

[英]Mockito ambiguous method call

我正在尝试排除一个方法调用,例如

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)来区分它们。

参考文档: any , anyMapOf

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

文档: IsA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM