我试图模拟一个非常简单的代码行,用于使用 Java 查询 DynamoDB。这是查询的一些示例代码 -
List<Pojo> result;
try {
if (filters == null) {
this.queryExpression = new DynamoDBQueryExpression<Pojo>()
.withKeyConditionExpression(partitionKeyCondition)
.withExpressionAttributeValues(this.eav);
} else {
setFilterQueryExpression(filters);
}
result = this.dynamoDBMapper.query(Pojo.class, queryExpression);
} catch (final Exception e) {
throw new InternalServerException("Something went wrong with the database query: ", e);
}
上面的代码有效,我能够检索自动反序列化到 Pojo 中的行列表。
我现在正在尝试this.dynamoDBMapper.query
按如下方式模拟通话 -
@Mock
private DynamoDBMapper mapper;
List<Pojo> result = new ArrayList<>();
when(mapper.query(Pojo.class,Mockito.any(DynamoDBQueryExpression.class)).thenReturn(result);
我无法做到这一点 -
Cannot resolve method 'thenReturn(java.util.List<com.amazon.xxx.xxx.Pojo>)'
我还尝试了另一种方法-
doReturn(result).when(mapper).query(Pojo.class, Mockito.any(DynamoDBQueryExpression.class));
这似乎可以编译,但测试失败并出现错误 -
org.mockito.exceptions.misusing.WrongTypeOfReturnValue
我查看了查询的预期输出为 type 的其他示例PaginatedQueryList
,我也尝试过更改。但我仍然不确定为什么上面会引发错误。