При этом ваши макеты и их конфигурация, вероятно, будут упакованы вместе с приложением, запущенным в производство.
Это кажется мне очень странным. Вы бы упаковали свои юнит-тесты в свое приложение Spring? Я так не думаю. Поэтому я хотел бы сказать, что это «плохой» дизайн, поскольку тестирование зависимостей не должно быть встроено в производственный код.
Однако Документация Spring о аннотации @Profile
использует пример разделения среды.
Теперь возникает вопрос, на который необходимо ответить: что вы подразумеваете под «интеграционным тестированием»?
Это автоматизированный интеграционный тест? Или вы хотите запускать ваше приложение в разных режимах для команд тестирования?
Если это автоматизированный интеграционный тест, то нет смысла использовать аннотацию @Profile
, поскольку автоматизированные тесты и производственный код не будут упаковываться вместе.
Однако, если вы хотите, чтобы ваши пользователи проводили интеграционные тесты, вы можете создать отдельный поддельный проект, который будет использоваться для имитации внешних зависимостей, которые вы вызываете (база данных, веб-сервисы и т. Д.).
Тогда @Profile
можно использовать для переключения из поддельного режима в рабочий, но только через файл конфигурации: поддельный профиль будет вызывать ваши поддельные внешние службы, тогда как производственный вызов будет вызывать реальные внешние службы.