Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Тестирование приложения, работающего с БД


Автор: Alar 22.9.2005, 08:52
Допустим, мы пишем приложение, работающее с базой данных, параллельно пишем тесты. Вопрос в следующем: как сделать тесты независимыми от существования и настройки базы данных? Существуют ли например, какие-то хитрые СУБД с JDBC-интерфейсом, разворчивающиеся в памяти или DAO-фреймворки, которые могут работать в режиме "заглушек"?

Вопрос возник когда пришлось внести изменения в один проект, он был написан с тестами, тесты работали с БД на локальной машине. Со времени написания многое изменилось и пришлось немного помучаться прежде чем существующие тесты заработали.

Кто что думает по этому поводу?

Автор: 3,14 22.9.2005, 09:44
Создать некие файлы сценариев тестирования, из них читать настройки соединения с БД, сам сценарий теста, и собственно результат к-ый должны получить в рещультате самого теста.

Автор: anonymouse 23.9.2005, 10:00
Наверно не совсем понял проблему. А если работать через JDBC, то достаточно иметь название банка и соответсвующий драйвер, все остальное должно быть универсально для всех банков. Если же имеется ввиду что меняется полностью цтруктура банка,то можно хранить непосредственно скрипты создания етого банка.
Ну и в принципе можно использовать embedded db (Hibernate, Derby ...)

Автор: Souljah 23.9.2005, 11:29
есть http://www.mockobjects.com, позволяют эмулировать определенное поведение любых объектов
я этим не занимался, но наши как-то прикручивали их к тестам для эмуляции DAO объектов, вроде работало. имхо как раз то, что надо

есть такая штука - DBUnit
может поднимать данные из XML-скрипта и заполнять ими базу перед каждым тестовым запуском

http://www.hsqldb.org/ может в память разворачиваться

Автор: Alar 23.9.2005, 12:05
2Souljah. О! вот это похоже то, о чем я говорил. Спасибо! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)