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.