Maison >développement back-end >Golang >Test unitaire en déplacement
Go fournit un package de tests contenant de nombreux outils à des fins de tests unitaires.
Préparation
Pratiquons-nous, préparez d'abord une structure Cube, la variable objet résultante de la structure sera ensuite utilisée comme matériel de test.
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 }
Enregistrez le code ci-dessus dans le fichier 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) } }
La méthode t.Logf() est utilisée pour afficher un log. Cette méthode est équivalente à fmt.Printf() .
La méthode Errorf() est utilisée pour afficher un journal suivi d'une déclaration indiquant qu'un échec s'est produit pendant le test.
La façon d’exécuter les tests consiste à utiliser la commande go test. Étant donné que la structure testée se trouve dans le fichier bab55.go, lors de l'exécution du test à l'aide de go test, les noms de fichiers bab55_test.go et bab55.go doivent être écrits sous forme d'arguments. L'argument -v ou verbeux est utilisé pour afficher toutes les sorties du journal pendant les tests.
Exécutez l'application comme indiqué dans l'image ci-dessous, on peut voir qu'aucun test n'a échoué. OK, alors essayez de changer la formule de calcul de la méthode Keliling(). Le but de ce changement est de découvrir comment le marqueur d'échec apparaît lorsqu'un test échoue.
func (k Cube) Perimeter() float64 { return k.Side * 15 }
Après cela, relancez le test.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!