java - Mockito 模棱两可的方法调用

标签 java junit mockito

我正在尝试对方法调用进行 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)以区分它们。

引用文档:any , anyMapOf

关于java - Mockito 模棱两可的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44842568/

相关文章:

unit-testing - 如何模拟返回Observable的响应式(Reactive)存储库

java - 任何(类)方法中的 Mockito 2 更改

java - Neo4j Bolt 驱动程序连接池

java - 如何在 Fitnesse 中引用外部类

java - 断言 java 中私有(private)方法抛出异常的另一种方法

unit-testing - 如何配置 GWTTestCase 扩展类

java - 如何恢复 Spring Boot 1.5 中的默认异常映射?

java - 如何使用 apache shiro 永久保持登录状态

java - 如何使用 Java 1.7 编写 Junit,同时使用 1.6 运行基本代码

java - Spring WebFlux测试抛出 "IllegalStateException: Failed to load ApplicationContext"异常