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.

Obtén el bean @ConfigurationProperties autowired en Junit.

Tú eres un traductor de español que se encarga de traducir documentos de IT. Traduce lo siguiente al español. No traduzcas el código y la salida en markdown.

Tengo una clase con la anotación @ConfigurationProperties en Spring Boot, ¿cómo puedo hacer que este bean sea autowired en las pruebas de JUnit?

@ConfigurationProperties
 public class ConfigClass{
   public String property;
}

–Ahora en las pruebas–

@RunWith(MockitoJunitRuner.class)
 class MisPruebas{

 @Autowired
 private ConfigClass configClass;

 @Test
 public miPrueba1(){
   String prop = configClass.getProperty();
   //Algunas afirmaciones
 }

— configClass aparece como nulo cuando ejecuto esta prueba —

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener la inyección de dependencias de un bean en pruebas de JUnit, debes crear un archivo de configuración de prueba e incluir la definición requerida del bean.

    Primero, crea un archivo de configuración de pruebas MyTestConfig.java:

    @Configuration
    public class MyTestConfig {
    
        @Bean
        @ConfigurationProperties(prefix = "myprops")
        public ConfigClass configClass() {
            return new ConfigClass();
        }
    }
    

    Esto crea un bean de tipo ConfigClass con el prefijo “myprops”.

    A continuación, modifica tu clase de prueba para incluir la configuración de prueba:

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = MyTestConfig.class)
    class MyTests {
    
        @Autowired
        private ConfigClass configClass;
    
        @Test
        public void myTest1() {
            String prop = configClass.getProperty();
            // Algunos assert
        }
    }
    

    Al incluir la clase MyTestConfig en la anotación @SpringBootTest, Spring creará un contexto de aplicación de prueba que incluirá la nueva definición del bean. El bean ConfigClass será inyectado en la clase de prueba, y podrás acceder a sus propiedades en el método de prueba.

Comments are closed.