es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo probar la vinculación de propiedades de configuración en Spring Boot?

Tengo una aplicación de Spring Boot con la siguiente clase de configuración (simplificada):

@ConfigurationProperties(prefix = "prefix")
@Configuration
public class ConfigProperties {
    @NotNull
    public Duration snapshotOffset;
}

Mi código está funcionando, pero me gustaría saber cómo puedo escribir pruebas unitarias para el proceso de enlace con diferentes archivos de propiedades como entrada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para escribir pruebas unitarias para el proceso de enlace con diferentes archivos de propiedades como entrada, puedes utilizar la anotación @TestPropertySource para especificar el archivo de propiedades a utilizar para cada prueba unitaria.

    Por ejemplo, puedes crear un archivo de propiedades application-test1.properties con el siguiente contenido:

    prefix.snapshot-offset=PT10S
    

    Y luego crear una prueba unitaria con la anotación @TestPropertySource para cargar este archivo de propiedades:

    @RunWith(SpringRunner.class)
    @SpringBootTest
    @TestPropertySource(locations="classpath:application-test1.properties")
    public class ConfigPropertiesTest {
    
        @Autowired
        private ConfigProperties configProperties;
    
        @Test
        public void testSnapshotOffset() {
            Duration expected = Duration.ofSeconds(10);
            Duration actual = configProperties.getSnapshotOffset();
            assertEquals(expected, actual);
        }
    }
    

    De manera similar, puedes crear múltiples archivos de propiedades y escribir pruebas unitarias para cada uno de ellos utilizando la anotación @TestPropertySource con ubicaciones diferentes.

Comments are closed.