DmitryKochetkov / studhub

Веб-приложение для отслеживания прогресса обучения
MIT License
1 stars 0 forks source link

Придумать нормальную инициализацию тестовой базы данных #56

Open DmitryKochetkov opened 3 years ago

DmitryKochetkov commented 3 years ago

Придумать нормальную инициализацию тестовой базы данных

Описание проблемы

С появлением каждой новой таблицы в тестовом sql приходится писать DELETE * [таблица]. Причем делать это приходится именно в таком порядке, чтобы не нарушить ограничения в связанных таблицах. Но дело не столько в этих DELETE, сколько в том, что основной sql почти ничем не отличается от тестового, кроме этих delete, что создает неудобства при добавлении данных (их приходится добавлять и туда, и туда).

Причины появления

В основном sql DELETE отсутствуют, так как данные переинициализируются каждый раз при очередном старте приложения (spring.jpa.hibernate.ddl-auto=create). Как я понял, при тестах перезапуск главного процесса не происходит, а значит не происходит и обновление ddl в hibernate.

Возможные решения

Скорее всего, необходимость в наличии тестового sql как такового отпадёт, если я начну использовать mock-объекты для тестирования бизнес-логики.