用参数映射模拟jdbc模板



我正在尝试使用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(( 替换为 any(ResultSetExtractor.class(

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

最新更新