我正在尝试使用Mockito模拟下面的代码行对jdbctemplate.query的调用

jdbcTemplate.query(sql, paramMap, (rs, rowNum) -> rowMapper(rs))


其中参数分别为String,Map和ResultSetExtractor

当我尝试使用Mockito模拟它时,遇到了编译错误,下面是单元测试中的代码

when(jdbcTemplate.query(ArgumentMatchers.anyString(), ArgumentMatchers.anyMap(), ArgumentMatchers.any())).thenAnswer(invocation -> {
....
}


我得到的错误是


无法解析方法查询(java.lang.String,java.util.Map,T)

最佳答案

由于未编译,Mockito对仿制药的处理非常糟糕
尝试用any(ResultSetExtractor.class)替换any()

when(jdbcTemplate.query(ArgumentMatchers.anyString(), ArgumentMatchers.anyMap(), ArgumentMatchers.any(ResultSetExtractor.class))).thenAnswer(invocation -> {
....
}

10-07 23:05