首页 > 解决方案 > JdbcTemplate classCastException 在 Mockito.when thenReturn 期​​间

问题描述

我的问题是我classCastException在单元测试中得到了Mockito。(我是 Mockito 的新手)

    Mockito.when(jdbcTemplate.query(eq("select * from V_MONITORING"),
                                 eq(namedParameters),
                                 eq(new BeanPropertyRowMapper<> 
 (V_MONITORING_Record.class)))).thenReturn((List <V_MONITORING_Record> ) rec);

没有强制转换它不会编译,但是使用强制转换我得到了异常:

java.lang.ClassCastException: ...V_MONITORING_Record cannot be cast to class java.util.List (...V_MONITORING_Record is in unnamed module of loader 'app'; java.util.List is in module java.base of loader 'bootstrap')

任何帮助表示赞赏。

标签: javamockito

解决方案


我认为 yopu 应该使用Arrays.asList(rec)方法,以便您可以作为 List of V_MONITORING_Record.class.

Mockito.when(jdbcTemplate.query(eq("select * from V_MONITORING"),
                                 eq(namedParameters),
                                 eq(new BeanPropertyRowMapper<> 
 (V_MONITORING_Record.class)))).thenReturn(Arrays.asList(rec));

推荐阅读