Cómo Autowire frijoles en clase de prueba cuando se utiliza @SpringBootTest

tarmo:

Tengo una clase de prueba de integración anotado con @SpringBootTestla que se pone en marcha el contexto de aplicación plena y me permite ejecuto mis pruebas. Sin embargo soy incapaz de @Autowiredfrijoles en la misma clase de prueba. En su lugar aparece un error:

Sin frijol clasificación del tipo 'my.package.MyHelper' disponible".

Si no @Autowire mi clase de ayuda, pero mantener el código directamente dentro de la función de configuración, la prueba funciona como se espera.

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class)
public class CacheControlTest {

    @Autowired
    private MyHelper myHelper;

    @Before
    public void setUp() {
        myHelper.doSomeStuff();
    }

    @Test
    public void test1() {
        // My test
    }
}

¿Cómo puedo hacer uso de la primavera autowiring dentro de la clase de prueba al mismo tiempo usando @SpringBootTest?

Siguiendo consejos @ user7294900 a continuación, crear una separada @Configurationde archivos y añadir esta en la parte superior de CacheControlTest funciona:

@ContextConfiguration(classes = { CacheControlTestConfiguration.class })

Sin embargo ¿hay alguna manera de mantener la configuración dentro de la CacheControlTestpropia clase? He intentado agregar dentro de mi clase de prueba:

public class CacheControlTest {

    @TestConfiguration
    static class CacheControlTestConfiguration {
        @Bean
        public MyHelper myHelper() {
            return new MyHelper();
        }
    }

}

Y

public class CacheControlTest {

    @Configuration
    static class CacheControlTestConfiguration {
        @Bean
        public MyHelper myHelper() {
            return new MyHelper();
        }
    }
}

Pero ellos no parecen tener ningún efecto. Sigo teniendo el mismo error. El mismo bloque de configuración funciona cuando se coloca en un archivo separado como se mencionó anteriormente, aunque.

user7294900:

Añadir ContextConfiguration para su clase de prueba:

@ContextConfiguration(classes = { CacheControlTestConfiguration.class })

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=217701&siteId=1
Recomendado
Clasificación