Pasar al contenido principal
Alexys Lozada
José Luján
Manuel Rodriguez
José Luján
Luis Avilés
Álvaro Felipe
José Luján
Beto Quiroga
Jonathan MirCha
Jonathan MirCha
Álvaro Felipe
Alexys Lozada, Álvaro Felipe, Jonathan MirCha
Beto Quiroga
Alexys Lozada
Alexys Lozada
José Luján
Álvaro Felipe
Álvaro Felipe
Jonathan MirCha
Jonathan MirCha
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Camilo Adobe
Álvaro Felipe
José Luján
Jonathan MirCha
Álvaro Felipe
Álvaro Felipe
Beto Quiroga, Alexys Lozada
Álvaro Felipe
Juan Villalvazo
Luis Avilés
Jonathan MirCha
Jonathan MirCha
Jonathan MirCha

Testing con Golang

Gopher
 
 
 
 
 
 

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:

package calculadora

// Suma devuelve el resultado de la adición de dos números
func Suma(numero1, numero2 int) (resultado int) {
	resultado = numero1 + numero2
	return
}

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 (+):

package calculadora

// Suma devuelve el resultado de la adición de dos números
func Suma(numero1, numero2 int) (resultado int) {
	resultado = numero1 - numero2
	return
}

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:

package calculadora

import "testing"

func TestSuma(t *testing.T) {
	valor := Suma(7, 23)
	if valor != 30 {
		t.Error("Se esperaba 30 y se obtuvo", valor)
	}
}

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:

go test

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.

Suscríbete al blog de EDteam

Ingresa tu correo electrónico para recibir nuestro boletín semanal