当我为我的DAO方法运行Junit测试时,我偶然发现了这个:
如果我运行自动装配的JdbcTemplate,如:
jdbcTemplate.query(myStatement, new MyRowMapper(), myParam1, myParam2)
并且resultSet为空,我的Junit测试通过,因为未调用MyRowMapper
。
当resultSet非空时,我的Junit测试失败并显示SQLException
,因为MyRowMapper
正在尝试访问ResultSet
中的非现有列。
问题是我的SQL语句与MyRowMapper
结合使用是错误的,但根据我的两个参数,我一次得到一个空的ResultSet
,我的测试很好,另一次测试失败因为等待RowMapper
映射的记录。
所以我的问题是:我如何(最佳实践?)junit测试jdbcTemplate().query(String sql, RowMapper<Systemgruppe> rowMapper, Object... args)
方法来验证SQL语句是否有效和(!)RowMapper
可以处理它,无论是否有是不是记录?
我们使用spring-core版本:4.3.7.RELEASE
提前致谢!