|
|
|
JUnit.Подскажите как правильно написать тест для DAO
|
|||
|---|---|---|---|
|
#18+
Всем, здравствуйте. В общем имеется DAO Код: java 1. 2. 3. 4. Пишу для этого дао тест (предварительно создав для тестов отдельный спринговой контекст, который замаплен на тестовую базу). Итак сам тест Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. В общем не нравится мне то как тут сделано, помимо тупого дублирования оба метода зависят друг от друга. Есть ли смысл тут писать SQL,что-то типа этого Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. , ну в общем как правильно (желательно с обоснованием) писать тесты для такого вот случая. Направьте на путь истинный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 21:26:53 |
|
||
|
JUnit.Подскажите как правильно написать тест для DAO
|
|||
|---|---|---|---|
|
#18+
justcoder, ну в общем как правильно (желательно с обоснованием) писать тесты для такого вот случая. Направьте на путь истинный.Вы думаете есть единственно правильный путь? ) Я, например, предпочитаю тестировать уровень сервисов, а не DAO. И данные "накидывать" руками, точнее с помощью DbUnit. Возможно, Вам понравится иначе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 21:45:53 |
|
||
|
JUnit.Подскажите как правильно написать тест для DAO
|
|||
|---|---|---|---|
|
#18+
justcoder, ваш тест проверяет Spring и Hibernate. Совершенно бессмысленно, они покрыты тестами очень хопошо, на все случаи жизни. Единственно что имеет смысл проверять, это насколько правильно данные отображаются в базе. Соответственно, если тестируем чтение то данные вставляем через SQL, если запись то проверяем через select. Это имеет смысл, чтобы проверить не ошиблись ли с мапингом, правильно ли сопоставляются типы ( вроде обрезки времени с типом date ), заполнение коллекций. Я правда предпочитаю не dbunit ( лень заполнять yaml/xml ), а скриптами. А следующий уровень тестировать подставляя вместо DAO mock объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 10:16:24 |
|
||
|
JUnit.Подскажите как правильно написать тест для DAO
|
|||
|---|---|---|---|
|
#18+
пролетевшийjustcoder, ваш тест проверяет Spring и Hibernate. Совершенно бессмысленно, они покрыты тестами очень хопошо, на все случаи жизни. Единственно что имеет смысл проверять, это насколько правильно данные отображаются в базе.HQL-запросы в DAO полезно проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 14:33:42 |
|
||
|
JUnit.Подскажите как правильно написать тест для DAO
|
|||
|---|---|---|---|
|
#18+
пролетевшийjustcoder, ваш тест проверяет Spring и Hibernate. Совершенно бессмысленно, они покрыты тестами очень хопошо, на все случаи жизни. Единственно что имеет смысл проверять, это насколько правильно данные отображаются в базе. Соответственно, если тестируем чтение то данные вставляем через SQL, если запись то проверяем через select. Это имеет смысл, чтобы проверить не ошиблись ли с мапингом, правильно ли сопоставляются типы ( вроде обрезки времени с типом date ), заполнение коллекций. Я правда предпочитаю не dbunit ( лень заполнять yaml/xml ), а скриптами. А следующий уровень тестировать подставляя вместо DAO mock объекты. У меня нету никакого hibernate, я юзаю голый sql обернутый в springJdbcTemplate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 15:17:56 |
|
||
|
JUnit.Подскажите как правильно написать тест для DAO
|
|||
|---|---|---|---|
|
#18+
1)грузите в in-memory базу порцию тестовых данных (1 строка) используя DBunit в тесте делаете getX() сравниваете ожидаемое с полученным. 2) в тесте делаете insertX(), сравниваете текущее состояние базы и ожидаемым(xml файл с 1 строчкой) используя DBunit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 16:34:02 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=195&tid=2128008]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 315ms |

| 0 / 0 |
