JdbcTemplate类型中的方法查询(String,ResultSetExtractor <t>)不适用于参数(String,BeanPropertyRowMapper)</t>

时间:2014-09-24 15:17:43

标签: java spring mocking mockito junit4

我有一个很奇怪的编译问题。我无法解决这个问题。同样的代码可以在另一个项目中正常工作

org.mockito.Mockito.when(jdbcTemplate.query(org.mockito.Matchers.anyString(), 
    org.mockito.Matchers.any(BeanPropertyRowMapper.class))).thenReturn(SOMELIST);

我收到错误

  

The method query(String, ResultSetExtractor<T>) in the type JdbcTemplate is not applicable for the arguments (String, BeanPropertyRowMapper)

但是当我这样做时,我没有得到任何错误。但我并不期待这一点。

BeanPropertyRowMapper<MyClass> mapper = 
    new BeanPropertyRowMapper<MyClass>(MyClass.class);
org.mockito.Mockito.when(jdbcTemplate.query(org.mockito.Matchers.anyString(), 
    mapper)).thenReturn(SOMELIST);

我不确定这是否是Eclipse问题。感谢你的帮助。

2 个答案:

答案 0 :(得分:3)

由于BeanPropertyRowMapper<T>是通用接口,因此您应该像这样调用any()

Mockito.when(jdbcTemplate.query(Matchers.anyString(), 
    Matchers.<BeanPropertyRowMapper<MyClass>>any())).thenReturn(SOMELIST);

答案 1 :(得分:0)

检查项目之间版本不匹配的依赖关系(弹簧罐)