<Anterior | Contenido | Siguiente>
Pruebas
Las pruebas son un paso importante en todo tipo de desarrollo de software, incluidos los scripts. Hay un dicho en el mundo del código abierto, "publicar temprano, publicar con frecuencia", que refleja este hecho. Al lanzarse temprano y con frecuencia, el software obtiene una mayor exposición al uso y las pruebas.
La experiencia ha demostrado que los errores son mucho más fáciles de encontrar y mucho menos costosos de corregir si se detectan al principio del ciclo de desarrollo.
En el Capítulo 26, vimos cómo se pueden usar los stubs para verificar el flujo del programa. Desde las primeras etapas del desarrollo del guión, son una técnica valiosa para comprobar el progreso de nuestro trabajo.
Veamos el problema de eliminación de archivos anterior y veamos cómo se puede codificar para facilitar las pruebas. Probar el fragmento de código original sería peligroso, ya que su propósito es eliminar archivos, pero podríamos modificar el código para que la prueba sea segura:
if [[-d $ dir_name]]; entonces si cd $ dir_name; luego
echo rm * # PRUEBAS
más
echo "no se puede cd a '$ dir_name'"> & 2 salir 1
fi más
echo "no existe tal directorio: '$ dir_name'"> & 2 salir 1
fi
salida # PRUEBAS
if [[-d $ dir_name]]; entonces si cd $ dir_name; luego
echo rm * # PRUEBAS
más
echo "no se puede cd a '$ dir_name'"> & 2 salir 1
fi más
echo "no existe tal directorio: '$ dir_name'"> & 2 salir 1
fi
salida # PRUEBAS
Dado que las condiciones de error ya generan mensajes útiles, no tenemos que agregar ninguno. El cambio más importante es colocar un echo comando justo antes del rm comando para permitir que se muestre el comando y su lista de argumentos expandida, en lugar de que se ejecute realmente el comando. Este cambio permite la ejecución segura del código. Al final del fragmento de código, colocamos un salida comando para concluir la prueba y evitar que se lleve a cabo cualquier otra parte del script. La necesidad de esto variará según el diseño del guión.
También incluimos algunos comentarios que actúan como "marcadores" para nuestros cambios relacionados con la prueba. Estos se pueden utilizar para ayudar a encontrar y eliminar los cambios cuando se completen las pruebas.