Saltar al contenido

Spring boot: cómo leer el recurso de classpath en la prueba unitaria

Recabamos por el mundo on line para así darte la solución a tu dilema, si continúas con dudas puedes dejarnos la inquietud y respondemos con gusto.

Solución:

No puede acceder a un recurso @Value a menos que sea una propiedad definida. Debería ser de esta manera.

@Value("$stateJsonPath")
Resource stateFile;

Si tiene que obtener el recurso de la ruta codificada, utilícelo de esta manera.

Resource stateFile = new ClassPathResource("state.json");

Acabo de encontrarme con esto. Estoy usando Maven. Eché un vistazo a mi carpeta target/test-classes y mi archivo de recursos no estaba allí (aunque estaba en mi carpeta src/test/resources).

corrí mvn clean install y luego volví a verificar mi carpeta target/test-classes y el archivo de recursos ahora estaba allí. Después de eso, mi prueba pudo encontrar el archivo y la prueba funcionó.

Entonces parece que sus recursos no se copian hasta que hace una mvn clean. JUnit está buscando en el classpath creado por maven y hasta que el archivo realmente llegue a la carpeta target/test-classes, JUnit no podrá encontrarlo.

Si posees algún contratiempo o forma de enriquecer nuestro enunciado eres capaz de añadir un comentario y con placer lo ojearemos.

¡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 *