¡Saludos a todos los aficionados al scripting! Ya saben que en Lean Mind nos
encanta tener nuestra base de código testeada como dios manda, por eso en el día
de hoy, vamos a sumergirnos en el mundo de las pruebas unitarias para scripts
Bash, utilizando una herramienta llamada bashunit
. Si alguna vez has escrito
scripts de Bash y te has preguntado cómo asegurarte de que funcionen
correctamente, ¡este artículo es para ti!
bashunit
?bashunit
es una herramienta diseñada para escribir y ejecutar pruebas
unitarias para scripts escritos en Bash. Su propósito es validar que cada
“unidad” de tu código funcione como se espera.
bashunit
?bashunit
# math_functions.sh
function sumar() {
echo $(($1 + $2))
}
# test_math_functions.sh
source bashunit.sh
source math_functions.sh
function test_sumar_basic() {
local result=$(sumar 3 4)
bashunit.test.assert_equals 7 $result
}
bashunit.test.run_tests
bashunit
El “mocking” es una técnica que te permite simular el comportamiento de funciones o comandos reales en tus pruebas, para que puedas concentrarte en probar la lógica de tu código sin depender de comportamientos externos.
Consideremos el siguiente ejemplo:
# En tu código
function my_grep() {
grep $@
}
function my_function_that_uses_grep() {
if my_grep "val" $1; then
return 1
fi
return 0
}
# En tu prueba
bashunit.test.mock.returns "my_grep" 0
bashunit.test.assert_return "my_function_that_uses_grep" 1
Aquí, my_grep
es simplemente una envoltura alrededor del comando grep
real.
Sin embargo, en la prueba, no queremos depender del comportamiento real de
grep
, así que lo “mockeamos” para que siempre devuelva 0 (indicando éxito).
Luego, probamos my_function_that_uses_grep
para ver cómo se comporta cuando
my_grep
tiene éxito. Esta es la esencia del mocking: simular comportamientos
para crear escenarios de prueba controlados.
Las pruebas unitarias son esenciales para un desarrollo robusto y confiable. Con
herramientas como bashunit
, puedes llevar las pruebas unitarias a tus scripts
Bash, asegurando que funcionen en diversos escenarios. Ya sea que necesites
simular comportamientos con “mocking”, trabajar con archivos temporales, o medir
la cobertura de tu código, bashunit
te brinda las herramientas necesarias para
hacerlo. ¡Feliz scripting y pruebas!
Para aquellos interesados en profundizar en bashunit
y explorar todas sus
características, pueden visitar el repositorio oficial en
GitHub y su
X (Twitter) donde son muy activos.
Si no conoces, o quieres darle una vuelta de tuerca a los conceptos de testing, ¡en nuestro blog y redes puedes encontrar más contenido!
¿Quieres más? te invitamos a suscribirte a nuestro boletín para avisarte cada vez que recopilemos contenido de calidad que compartir.
Si disfrutas leyendo nuestro blog, ¿imaginas lo divertido que sería trabajar con nosotros? ¿te gustaría?
Pero espera 🖐 que tenemos un conflicto interno. A nosotros las newsletter nos parecen 💩👎👹 Por eso hemos creado la LEAN LISTA, la primera lista zen, disfrutona y que suena a rock y reggaeton del sector de la programación. Todos hemos recibido newsletters por encima de nuestras posibilidades 😅 por eso este es el compromiso de la Lean Lista