簡體   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