Accede a todo EDteam con un único pago¡Sube a premium!

Testing con Golang

            Hola gente del futuro. En esta ocasión quiero hablarles de testing.

Diseño web
3 minutos
Hace 7 años
Testing con Golang

Hola gente del futuro.

En esta ocasión quiero hablarles de testing.

Cuando desarrollamos nuevas características para nuestros proyectos de software, la incertidumbre aparece ¿con el nuevo código algo de lo que ya existe se rompió? y entonces empezamos a probar cada una de las nuevas características "a mano".

En proyectos pequeños nos da igual tener que usar la aplicación y verificar que todo vaya bien, pero a medida que va creciendo el proyecto estar probando todas las características para eliminar la incertidumbre se vuelve caótico, y puede que olvidemos probar alguna característica.

Algunos pensarán:

Yo no necesito hacer pruebas, sé que lo que hago funciona.

Puede que su nivel de confianza sea tal que ni siquiera hagan pruebas manuales, sin embargo, un pequeño cambio puede provocar que toda la aplicación falle, es mejor estar completamente seguro de que no será así.

Aquellos que no prueban las cosas antes de llevarlas a producción se enfrentan a la posibilidad de recibir mensajes y/o llamadas de clientes enojados; yo prefiero vivir tranquilo sin esa incertidumbre, ¿y tú?

Veamos un ejemplo de pruebas con el lenguaje de programación Go (golang).

Go y golang son la misma cosa, prefiero usar siempre la palabra golang para evitar confusiones. ;)

Vamos a crear un paquete sencillo, su nombre será calculadora:

1package calculadora 2 3// Suma devuelve el resultado de la adición de dos números 4func Suma(numero1, numero2 int) (resultado int) { 5 resultado = numero1 + numero2 6 return 7} 8

La función Suma es sencilla de entender, recibe dos enteros y devuelve un entero (resutado de la suma), pero nada nos asegura que el entero que devuelve sea realmente la suma de los dos enteros que recibe.

Imaginemos que mientras construía la lógica de la función, por error usé el signo menos (-) en lugar del signo más (+):

1package calculadora 2 3// Suma devuelve el resultado de la adición de dos números 4func Suma(numero1, numero2 int) (resultado int) { 5 resultado = numero1 - numero2 6 return 7} 8

Sintácticamente todo está bien, aún recibe dos enteros y devuelve un entero, sin embargo, no está funcionando como debería, se supone que la función Suma devuelve el resultado de la adición de dos números.

Para asegurarnos de que todo esté bien realmente, creemos una prueba.

La documentación de golang, nos dice que creemos un archivo con el mismo nombre del paquete seguido por el sufijo \_test.go, en nuestro caso será calculadora\_test.go:

1package calculadora 2 3import "testing" 4 5func TestSuma(t *testing.T) { 6 valor := Suma(7, 23) 7 if valor != 30 { 8 t.Error("Se esperaba 30 y se obtuvo", valor) 9 } 10} 11

La función de testing debe iniciar con la palabra Test seguido por un nombre cualquiera, usaremos la palabra Suma para que nuestro cerebro la asocie con la función que queremos probar. ;)

Como sabemos que la suma de 7 y 23 es 30, si llega a ser diferente de eso es porque algo anda mal, en ese caso usamos la función Error para indicar que la prueba falló.

Puede que en este punto parezca tonto decir esto pero... Se considera que la prueba fue exitosa si no imprime errores.

Para correr la prueba, en la terminal usamos el siguiente comando:

1go test 2

Si todo ha ido bien veremos la palabra PASS, y si algo ha fallado, veremos la palabra FAIL junto a nuestro mensaje de error y la línea del archivo en donde las cosas fallaron.

Si quieres aprender a usar el lenguaje de programación Go (golang), te invito a ver el temario del Curso Golang desde cero de EDteam en donde junto a Alexys Lozada y yo, Daniel Romero aprenderás paso a paso.

Si eres de lo que prefieren ver las cosas en video, puedes ver la transmisión en vivo que realizamos el equipo de Golang-es sobre el tema:

Eso es todo por ahora gente del futuro, nos leemos en el siguiente artículo.

Comentarios de los usuarios

Pregunta a ChatEDT