如何模拟getJdbcTemplate(). queryforobject()



我成功地模仿了

JdbcTemplate jdbcTemplate = getJdbcTemplate();
jdbcTemplate.queryForObject();

JdbcTemplate jdbcTemplate = mock(JdbcTemplate.class);
when(jdbcTemplate.queryForObject(JdbcTwitterDao.SQL_SELECT_TWITTER, parameterizedRowMapper, 1)).thenReturn(expectedObject);

你能告诉我如何模仿吗

getJdbcTemplate().queryForObject();

我不知道应该模仿哪个对象

如果您正在寻找如何模拟可变长度参数方法:

假设您的DAO类也实现了模拟方法queryForObject(string,rowMapper,Object...)的RowMapper接口

    JdbcTemplate jdbcTemplateMock = Mockito.mock(JdbcTemplate.class);
    ReflectionTestUtils.setField(yourDao, "jdbcTemplate", jdbcTemplateMock);
    Mockito.when(jdbcTemplateMock.queryForObject(Mockito.anyString(),Mockito.any(dao.getClass()) ,Mockito.anyVararg())).thenReturn(entity);

如果您使用JdbcDaoSupport作为基类来获取模板,那么您可以简单地在测试中构造DAO,并立即在其上使用setJdbcTemplate(mockJdbcTemplate)来替换为mock。

相关内容

  • 没有找到相关文章

最新更新