Estoy usando una biblioteca de terceros que básicamente crea un directorio de salida con diferentes tipos de archivos y subdirectorios dentro. Me gustaría poder escribir pruebas unitarias para confirmar que la salida es correcta.¿Se puede crear un disco RAM de Java para ser utilizado con la API java.io. *?
Me gustaría poder utilizar la lib con un disco RAM, de modo que nada de lo que la biblioteca haga toca las placas de disco reales de ninguna manera. La idea es hacer las pruebas muy rápido para ejecutar y limpiar (¿soltar el disco RAM?).
Las dos opciones más destacadas disponibles para mí son Commons VFS y JSR 203. El primero no me sirve porque quiero que las cosas funcionen de manera transparente utilizando la API java.io. * y no las clases VFS de Commons. Lo último no funciona porque tengo que conformarme con JDK 6 (se supone que es parte de JDK 7) y no sé si funcionará sin problemas con java.io. * de todos modos (no lo haría). puedes contar con ello).
También hay other soluciones, pero no puedo usarlas por la misma razón que no puedo usar Commons VFS. Los simulacros están fuera de discusión debido a la complejidad de la biblioteca en cuestión.
En mi máquina Linux, puedo crear fácilmente una unidad RAM y usar la API java.io. * de la misma manera que lo haría con los archivos en el disco. La cuestión es que quiero que sea multiplataforma y, más específicamente, que la configuración del disco sea parte del procedimiento de prueba, en lugar de algo externo.
Entonces, ¿hay alguna forma de registrar una unidad de RAM en Java que pueda utilizarse con la API java.io. * estándar?
Por qué no mirar fuera de Java. Cree un disco RAM en el nivel del sistema operativo (existen herramientas para Windows y Linux) y simplemente dele a su biblioteca esa ruta. –
Ya expliqué por qué: idealmente quería que el procedimiento fuera independiente de la plataforma. Además, preferiría que cualquier código necesario esté en Java, en lugar de escribir scripts externos para configurar y disponer un disco RAM en un entorno u otro. –
¿Has encontrado una solución? Para Java 7 o Java 8. – Jus12