2015-06-30 3 views
0

Я пытаюсь издеваться класс реализации DAO, который расширяет NamedParameterJdbcDaoSupportКак издеваются getNamedParameterJdbcTemplate()

Это как мой DAO интерфейс выглядит следующим образом:

public interface TestDAO{ 

List<String> search(); 

} 

Это как мой класс реализации:

public class TestDAOImpl extends NamedParameterJdbcDaoSupport implements TestDAO { 

    public List<String> search(){ 

    return getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper); 
    } 
} 

То, что я пытаюсь достичь, что написать макет тестовый пример для имитации поведения вызова

getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper) 

Так что я хочу, чтобы реализовать что-то вроде

when(getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper)).thenReturn(whatIWantToReturn); 

Я не могу найти какую-либо информацию по этому вопросу. Может ли кто-нибудь руководить мной. Как это сделать?

public class TestDAOImplTestCase{ 

    @Test 
    public void testSearch(){ 
     when(getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper)).thenReturn(whatIWantToReturn); 
    } 
} 
+0

То, что я хочу сделать, это вернуть некоторые результаты испытаний, когда метод запроса называется ? – Aniks

ответ

0

доверять мне, вы не хотите этого делать. что вы действительно хотите сделать, это сделать два теста:

  1. проще один: дразнить весь TestDao интерфейс и модульного тестирования, если остальная часть кода передает правильные параметры в search и правильно обрабатывает результат исполнения

  2. немного сложнее: интеграционный тест. принять реальное осуществление TestDAOImpl, подключить его к реальной базе данных, предварительное заполнение базы данных с данными, выполнить метод search и проверить, если он возвращает правильный ответ