Как издеваться над getJdbcTemplate (). QueryForObject ()? - PullRequest
2 голосов
/ 26 ноября 2011

Я успешно издевался

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

с

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

Не могли бы вы дать мне знать, как издеваться

getJdbcTemplate().queryForObject();

Я не знаю, какой объектЯ должен издеваться.

Ответы [ 2 ]

3 голосов
/ 06 августа 2012

Если вы ищете способ макетировать методы параметра переменной длины:

Предполагая, что ваш класс DAO также реализует интерфейс RowMapper для метода имитации queryForObject(string,rowMapper,Object...)

    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);
2 голосов
/ 26 ноября 2011

Если вы используете JdbcDaoSupport в качестве базового класса для получения шаблона, вы можете просто создать свой DAO в тесте и сразу же setJdbcTemplate(mockJdbcTemplate) на нем заменить его своим макетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...