Pregunta

Estoy escribiendo un programa ruby ??que ejecuta algunas utilidades de línea de comandos externas. ¿Cómo podría burlarme del sistema de archivos de mis pruebas rspec para poder configurar fácilmente alguna jerarquía de archivos y verificarla después de la prueba? También sería mejor implementarlo en RAM para que las pruebas se ejecuten rápidamente.

Me doy cuenta de que es posible que no encuentre una solución portátil ya que mis utilidades externas son programas nativos que interactúan directamente con los servicios de archivos del sistema operativo. Linux es mi plataforma principal y la solución para eso sería suficiente.

¿Fue útil?

Solución

Tal vez esto no responda su pregunta directamente, pero en tales casos tiendo a crear un directorio temporal durante la configuración de la prueba y eliminarlo en el desmontaje. Por supuesto, también debe asegurarse de que la aplicación escriba en este directorio temporal. Siempre tengo una opción de configuración que define el directorio de destino que puedo sobrescribir durante las pruebas.

Cuando se trata de afirmaciones, uso File.exist? o File.directory? , pero, por supuesto, puede crear sus propios envoltorios. Si necesita un estado inicial, puede crear un directorio que pueda usarse como un dispositivo fijo y se copiará en el directorio temporal durante la configuración de la prueba.

Otros consejos

¿Ha comprobado FakeFS o MockFS ?

Nota: El enlace original a MockFS no funciona. parece que ya no se mantiene.

Puede crear un archivo grande (tamaño de su disco ficticio) y montar el archivo como dispositivo de bucle de retorno . Puede crear cualquier sistema de archivos y estructura de directorios en este dispositivo.
Puede crear 2 de ellos e incluso hacer una comparación simple para garantizar la integridad de los datos después de las pruebas.
Espero entender sus requisitos correctamente, ya que no estoy seguro de por qué la solución simple de ramdisk no es lo suficientemente buena.
Esto también podría ser relevante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top