Dans le développement de logiciels, les tests unitaires sont une tâche très importante, qui peut aider les développeurs à garantir la qualité et la fiabilité du code. Dans le langage Go, nous pouvons utiliser certaines bibliothèques et technologies pour simuler la valeur de retour d'une fonction afin de meilleurs tests unitaires. Dans cet article, l'éditeur PHP Xiaoxin vous présentera la méthode d'implémentation des valeurs de retour de simulation de fonction dans le langage Go pour aider les développeurs à mieux effectuer les tests unitaires et à améliorer la qualité et la maintenabilité du code.
J'ai créé un petit script en golang (mon premier projet golang).
Exemple :
package main import ( "fmt" "math/rand" ) func main() { i := rand.Intn(10) foo := foo(i) if foo { fmt.Printf("%d is even!", i) // more code ... } else { fmt.Printf("%d is odd!", i) // more code ... } } func foo(i int) bool { if i%2 == 0 { return true } else { return false } }
Je souhaite créer un petit test unitaire pour chaque fonction. Pour "main()", je veux me moquer de la valeur de retour de la fonction "foo()" puisque je ne testerai pas "foo()" mais le reste du code main().
Je recherche un moyen simple de stuper/simuler les valeurs de retour. Je viens de découvrir le moqueur avec des structures ou des interfaces etc. Mais je n'utilise pas ces éléments dans le code (c'est un projet simple).
Utilisez un exemple réaliste, minimal et reproductible : Comment créer un exemple minimal et reproductible.
Par exemple, en go,
package main import ( "fmt" "math/rand" ) func iseven(i int) bool { return i%2 == 0 } func side(n int) string { if iseven(n) { return "right" } else { return "left" } } func main() { n := 1 + rand.intn(10) hand := side(n) fmt.printf("number %d is on the %s-hand side of the street.\n", n, hand) }
https://www.php.cn/link/7c63a554c36ea63c77723a472b7ca20f
number 9 is on the left-hand side of the street.
Utilisez le package de test go pour les fonctions side
函数进行单元测试。您还可以直接对 iseven
函数进行单元测试。 main
ne doivent contenir aucun code à tester unitairement.
package main import ( "testing" ) func TestSide(t *testing.T) { n := 7 got := side(n) want := "left" if got != want { t.Errorf("side(%d) = %s; want %s", n, got, want) } }
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!