À l'ère du développement logiciel moderne, les tests sont considérés comme l'un des outils clés pour garantir la fiabilité et la qualité du code. Bien que la couverture du code ne signifie pas que le code est totalement fiable et fonctionne correctement, c'est un indicateur qui confirme que le code est correctement testé. La couverture du code fait référence à la manière dont notre code de test couvre le code de l'application. Dans le langage de programmation Go, vous pouvez facilement calculer la couverture de test de votre code à l'aide des outils de test et de couverture intégrés. Cet article présentera les bases et les directives pour la couverture des tests à l'aide de Go.
1. Méthode de calcul de la couverture des tests
La couverture des tests fait référence à la valeur de mesure générée par le code de test lorsqu'il couvre le code source. La documentation officielle de Go fournit des outils d'analyse de couverture. Entrez "go test -cover" sur la ligne de commande pour afficher les résultats de la couverture des tests. En haut de la page, générez un rapport de couverture qui inclut le nombre total de lignes de code, le nombre de lignes couvertes par les tests et le pourcentage de couverture des tests.
Cependant, toutes les lignes ne sont pas prises en compte dans les statistiques de couverture car toutes les lignes de code source ne peuvent pas être testées. Par exemple, une boucle peut être itérée à travers des instructions conditionnelles, nécessitant des tests pour chaque branche. De même, les gestionnaires d’exceptions et autres mécanismes de gestion des erreurs peuvent augmenter la confiance de vos tests.
2. Comment utiliser la couverture de test pour implémenter les tests
Pour les programmes Go généraux, vous devez créer un fichier de code source nommé "mysource.go". Si vous souhaitez tester ce code, écrivez un fichier de test spécial appelé "mysource_test.go". Ce fichier doit contenir des fonctions de test au niveau du package afin d'exécuter certains tests unitaires et cas de test.
Ce qui suit est un exemple d'utilisation de la fonction de statistiques de couverture de test dans un programme Go :
package main func isPalindrome(s string) bool { for i := range s { if s[i] != s[len(s)-i-1] { return false } } return true }
Dans "mysource_test.go", vous pouvez écrire les cas de test suivants dans This la fonction est testée :
package main import "testing" func TestIsPalindrome(t *testing.T) { var tests = []struct { input string want bool }{ {"racecar", true}, {"hello", false}, {"", true}, } for _, test := range tests { if got := isPalindrome(test.input); got != test.want { t.Errorf("isPalindrome(%q) = %v", test.input, got) } } }
Ici, nous utilisons le package testing dans Go. Nous définissons une fonction de test appelée "TestIsPalindrome" qui parcourt la structure contenant les cas de test. À l'intérieur de la boucle, nous utilisons la fonction t.Errorf pour enregistrer l'erreur et imprimer les résultats réels et attendus.
3. Comment afficher les informations de couverture des tests dans le code
Pour afficher les informations de couverture des tests, vous devez exécuter la commande "go test -cover". Le compilateur Go générera un aperçu de la couverture pour illustrer le nombre de lignes de votre code de test couvrant votre code d'application. Un exemple est le suivant :
PASS coverage: 83.3% of statements ok github.com/mediomelon/testing-in-go 0.003s
Ici on voit que le tableau de couverture montre que 83,3% du code (soit 5 lignes de code contenues par 5 tests) est couvert par les tests.
4. Utilisez des outils de couverture de test plus avancés
En plus d'une interface de ligne de commande simple, Go fournit également un outil de couverture de test plus avancé. Par exemple, gocov est un outil de couverture permettant de tester le code du langage Go. Il affiche des statistiques telles que la couverture, qui peuvent vous aider à comprendre le degré de couverture de votre code de test.
Utilisation spécifique de gocov :
github.com/mediomelon/testing-in-go/cmd/upgrade/main.go lines: 100.0% (1/1) total: 100.0% (1/1)
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!