Saltar al contenido

La prueba de primavera con @DataJpaTest no puede autoconectar la clase con @Repository (¡pero con el repositorio de interfaz funciona!)

Si te encuentras con algún detalle que te causa duda puedes comentarlo y te responderemos lo mas rápido que podamos.

Solución:

Creo que tenía razón sobre el problema. Después de encontrar una publicación en Github y leer la documentación de Spring:

@DataJpaTest se puede usar si desea probar aplicaciones JPA. De forma predeterminada, configurará una base de datos incrustada en memoria, buscará clases @Entity y configurará repositorios Spring Data JPA. Los beans @Component normales no se cargarán en ApplicationContext.

Mi PersonRepository se considera regular @Component, porque no es un repositorio Spring Data JPA (la interfaz lo es). Por lo tanto, no está cargado.

La solución alternativa es utilizar @SpringBootTest en lugar de @DataJpaTest.

La desventaja de esta solución es que cargará todos su contexto mientras ejecuta su prueba y, con esto, deshabilitar el corte de prueba. Pero haz el trabajo.

Otra opción, todavía usando @DataJpaTestes incluir un @Repository anotación de filtro, así:

@DataJpaTest(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Repository.class))

Sólo otra alternativa podría ser @Import como se muestra aquí https://stackoverflow.com/a/41084739/384674.

Sección de Reseñas y Valoraciones

Si te sientes a gusto, puedes dejar una crónica acerca de qué le añadirías a esta sección.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *