Go proporciona un paquete de prueba que contiene muchas herramientas para realizar pruebas unitarias.
Preparación
Practiquemos, primero preparemos una estructura Cube, la variable de objeto resultante de la estructura se usará más tarde como material de prueba.
package main import "math" type Cube struct { Sisi float64 } func (k Cube) Volume() float64 { return math.Pow(k.Sisi, 3) } func (k Cube) Area() float64 { return math.Pow(k.Sisi, 2) * 6 } func (k Cube) circumference() float64 { return k.Sisi * 12 }
Guarde el código anterior en el archivo Training1.go
package main import "testing" var ( cube Cube = Cube{4} volume Should float64 = 64 area Should float64 = 96 circumference Should float64 = 48 ) func TestCalculateVolume(t *testing.T) { t.Logf("Volume : %.2f", cube.Volume()) if cube.Volume() != volumeShould { t.Errorf("WRONG! should be %.2f", volumeShould) } } func TestCalculateSurface(t *testing.T) { t.Logf("Area : %.2f", cube.Area()) if cube.Area() != areaShould { t.Errorf("WRONG! should be %.2f", areaShould) } } func TestCalculatePerimeter(t *testing.T) { t.Logf("Perimeter : %.2f", cube.Perimeter()) if cube.Perimeter() != circumferenceShould { t.Errorf("WRONG! should be %.2f", circumferenceShould) } }
El método t.Logf() se utiliza para mostrar un registro. Este método es equivalente a fmt.Printf() .
El método Errorf() se utiliza para mostrar un registro seguido de una declaración de que se produjo un error durante la prueba.
La forma de ejecutar las pruebas es utilizar el comando go test. Debido a que la estructura que se está probando está en el archivo bab55.go, al ejecutar la prueba usando go test, los nombres de los archivos bab55_test.go y bab55.go deben escribirse como argumentos. El argumento -v o detallado se utiliza para mostrar todos los resultados del registro durante la prueba.
Ejecute la aplicación como se muestra en la imagen a continuación, se puede ver que ninguna prueba ha fallado. Bien, entonces intenta cambiar la fórmula de cálculo para el método Keliling(). El propósito de este cambio es descubrir cómo aparece el marcador de falla cuando falla una prueba.
func (k Cube) Perimeter() float64 { return k.Side * 15 }
Después de eso, ejecuta la prueba nuevamente.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3