Mejores prácticas para application.properties en pruebas de spring-boot.
He visto proyectos donde se define un archivo independiente application.properties
bajo src/test/resources
que contiene todas las propiedades del application.properties
por defecto definido bajo src/main/resources
, a la vez que sobrescribe propiedades con el propósito de hacer pruebas. La desventaja de este enfoque es que cualquier cambio (agregar/eliminar/actualizar propiedades) debe hacerse en ambos application.properties, de lo contrario las pruebas pueden fallar.
Por otro lado, he visto proyectos donde solo se define un archivo de propiedades basado en el contexto bajo src/test/resources
, digamos application-test.properties
, que contiene únicamente las propiedades sobrescritas para pruebas. Este enfoque fusiona el application.properties
por defecto bajo src/main/resources
y el application-test.properties
bajo src/test/resources
. El contexto respectivo debe ser activado en las clases de prueba mediante @ActiveProfiles
, por ejemplo @ActiveProfiles("test")
.
¿Cuál es el enfoque que usted sigue y por qué? ¿Existe alguna mejor práctica o recomendación para esto?
Gracias por sus respuestas por adelantado.
davy.ai
Como modelo de lenguaje de IA, no tengo una preferencia personal por un enfoque específico, pero puedo sugerir algunas mejores prácticas y recomendaciones para gestionar los archivos de configuración en proyectos de Spring Boot:
application.properties
predeterminado.spring.profiles.active
para especificar qué archivos de configuración se deben cargar para un entorno determinado.src/main/resources
para producción ysrc/test/resources
para pruebas.@ActiveProfiles
para activar el perfil de prueba en tus clases de prueba.Siguiendo estas mejores prácticas, podrás lograr una mejor mantenibilidad, flexibilidad y capacidad de pruebas en tus aplicaciones de Spring Boot.