Прежде всего, вы должны спросить себя, действительно ли вам нужно загружать целое приложение для вашего теста.Если у вас есть тест, который проверяет, дают ли определенные методы правильный вывод для данного ввода, который не требует вызовов базы данных, он вам, вероятно, не нужен.
Даже если для теста требуется подключение к базе данных, выдолжен спросить себя, должна ли она быть реальной базой данных.Если для ваших тестов вы используете отдельную базу данных, это также означает, что весь процесс сборки завершится неудачей, если в базе данных будет какое-либо обслуживание.Возможно, лучше использовать отдельную базу данных в памяти для целей тестирования.
Чтобы это произошло, вы можете добавить базу данных в памяти, такую как HSQLDB, в свой проект в качестве тестовой зависимости:
testCompile("org.hsqldb:hsqldb")
После этого вы можете предоставить отдельный файл application-test.properties
:
spring.datasource.url=jdbc:hsqldb:mem
spring.datasource.username=user
spring.datasource.password=pass
Теперь вы можете комментировать любой тест, для которого требуется соединение с базой данных, с помощью @ActiveProfiles("test")
.
Даже если вам не нравится база данных в памяти для тестирования, вы все равно можете использовать подход с использованием нескольких профилей для использования другой конфигурации базы данных для тестирования (например, жестко закодированное соединение + имя пользователя / пароль к базе данных).