95shuma / crm

3 stars 0 forks source link

Создать тестовую базу данных для тестирования #108

Closed aasaliev closed 4 years ago

aasaliev commented 4 years ago
kempl95 commented 4 years ago

Искал как разделить 2 БД. Нашел ресурс по Profile делению классов https://stackabuse.com/spring-annotations-testing/ https://www.concretepage.com/spring-5/activeprofiles-example-spring-test https://www.baeldung.com/spring-profiles

Если пометить определенный класс(все его методы)/метод аннотацией @Profile, то класс/метод сработает только в случае если в application.properties указано какой профиль использовать: spring.profiles.active=profileName

kempl95 commented 4 years ago

Для правильной работы интеграционных тестов, база данных должна пересоздаваться при каждом тесте. Искал подходящую информацию как упростить данный процесс https://www.codeflow.site/ru/article/spring-boot-data-sql-and-schema-sql

spring.jpa.hibernate.ddl-auto=create - пересоздает базу при запуске тестового класса, но как оказалось позже, не удаляет данные, если запустить несколько тестов подряд в одном тестовом классе. Поэтому далее использовался tearDown() который в ручную чистит БД при каждом тесте с помощью аннотации @After

Для того чтобы проверить работоспособность тестовой базы в данном тикете также был изменен тестовый метод.

kempl95 commented 4 years ago

Фактическое время выполнения: 8 часов. Потрачено дополнительное время на тестирование работоспособности тестовой базы