нужны предложения по началу работы с Junit
Я не использовал Junit раньше и не проводил модульное тестирование автоматически.
Сценарий: Мы меняем наш бэкэнд DAO 'с сервера SQL на Oracle. Таким образом, на стороне БД все хранимые процедуры были преобразованы в Oracle. Теперь, когда наш код вызывает эти хранимые процедуры Oracle, мы хотим убедиться, что возвращаемые данные такие же, как и в хранимых процедурах SQL Server.
Так, например, у меня есть следующий метод в DAO:
//this is old method. gets data from sql server
public IdentifierBean getHeadIdentifiers_old(String head){
HashMap parmMap = new HashMap();
parmMap.put("head", head);
List result = getSqlMapClientTemplate().queryForList("Income.getIdentifiers", parmMap);
return (IdentifierBean)result.get(0);
}
//this is new method. gets data from Oracle
public IdentifierBean getHeadIdentifiers(String head){
HashMap parmMap = new HashMap();
parmMap.put("head", head);
getSqlMapClientTemplate().queryForObject("Income.getIdentifiers", parmMap);
return (IdentifierBean)((List)parmMap.get("Result0")).get(0);
}
Теперь я хочу написать тестовый метод Junit, который будет сначала вызыватьgetHeadIdentifiers_old
а потомgetHeadIdentifiers
и будет сравнивать возвращаемый объект (придется перезаписать равно и хэш вIdentifierBean
). Тест пройдет только тогда, когда оба объекта одинаковы.
В методе тестера мне нужно будет предоставить параметр (в данном случае заголовок) для двух методов ... пока это будет сделано вручную. Да, параметры внешнего интерфейса могут отличаться, и SP могут не возвращать точные результаты для этих параметров. Но я думаю, что наличие этих тестов даст нам некоторое облегчение, что они возвращают одни и те же данные ...
Мои вопросы:
Это хороший подход?Я буду иметь несколько DAO 's. Должен ли я написать методы тестирования внутри самого DAO или для каждого DAO у меня должен быть отдельный класс тестирования JUnit?(может быть, вопрос n00b) все тесты будут запускаться автоматически? Я не хочу переходить на внешний интерфейс, чтобы вызывать DAO.Когда тесты пройдут, я узнаю, какие методы провалились? и для тех, кто потерпел неудачу, это скажет мне метод испытания, который потерпел неудачу?наконец, есть ли хорошие отправные точки? любые учебники, статьи, которые показывают работу с Junit