我正在尝试使用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 -> {
....
}