¿Qué son las tablas de pruebas?
Las tablas de pruebas son útiles en el caso en el cual se requieran realizar múltiples entradas/salidas a la misma función, ya que es posible echar mano de un mapa con dichas referencias.
Ejemplo del uso de tablas de pruebas en Go
package persona
func EsAdulto(edad int) bool {
return edad >= 18
}
package persona
import "testing"
type EsAdultoTest struct {
edad int
want bool
}
var esAdultoTests = []EsAdultoTest{
{edad: 17, want: false},
{edad: 18, want: true},
{edad: 19, want: true},
}
func TestEsAdulto(t *testing.T) {
for _, test := range esAdultoTests {
got := EsAdulto(test.edad)
if got != test.want {
t.Errorf("EsAdulto(%v) = %v, se esperaba %v", test.edad, got, test.want)
}
}
}
Hemos creado una estructura para almacenar las pruebas.
type EsAdultoTest struct {
edad int
want bool
}
Almacenamos en un arreglo los valores a enviar y los valores esperados.
var esAdultoTests = []EsAdultoTest{
{edad: 17, want: false},
{edad: 18, want: true},
{edad: 19, want: true},
}
Ahora podemos recorrer el arreglo de las pruebas y utilizamos el patrón.
for _, test := range esAdultoTests {
got := EsAdulto(test.edad)
if got != test.want {
t.Errorf("EsAdulto(%v) = %v, se esperaba %v", test.edad, got, test.want)
}
}
Y tendremos en la salida.
PASS
ok github.com/arumals/como-aprendi-go/073_tabla_de_pruebas 0.005s