Maison > développement back-end > Golang > Test et débogage des fonctions Golang

Test et débogage des fonctions Golang

WBOY
Libérer: 2024-04-15 15:36:01
original
594 Les gens l'ont consulté

Fonctions de test dans Golang : créez un fichier de test se terminant par _test.go. Déclarez une fonction de test nommée TestXXX, où XXX est le nom de la fonction testée. Utilisez des assertions pour vérifier que les résultats attendus correspondent aux résultats réels. Définissez des points d'arrêt et utilisez le débogueur pour déboguer les échecs des tests. Utilisez des outils de test et de couverture basés sur des tableaux pour améliorer l’efficacité des tests.

Test et débogage des fonctions Golang

Test et débogage des fonctions Golang

Dans Golang, les tests sont une pratique importante pour garantir la fiabilité et l'exactitude du code. Ce didacticiel vous expliquera comment utiliser le cadre de test intégré de Golang pour tester et déboguer les fonctions.

Test des fonctions

Afin de tester une fonction, vous devez créer un nouveau fichier se terminant par _test.go. Ce fichier se trouve dans le même package que la fonction testée. Dans le fichier de test, déclarez une fonction de test à l'aide de la fonction TestXXX du package testing, où XXX est le nom de la fonction testée. Par exemple : _test.go 结尾的新文件。该文件位于与被测函数相同的包中。在测试文件中,使用 testing 包的 TestXXX 函数声明一个测试函数,其中 XXX 是被测函数的名称。例如:

// my_function_test.go

package mypackage

import (
    "testing"
)

func TestAdd(t *testing.T) {
    // ...
}
Copier après la connexion

断言

在测试函数中,使用断言来验证预期结果与实际结果是否一致。testing 包提供了多种断言函数,例如:

  • t.Equal(a, b):验证 ab 是否相等
  • t.ErrorIs(err, expectedError):验证 errexpectedError 是否是相同的错误
  • t.True(cond):验证 condtrue

实战案例

假设你有一个名为 add 的函数,该函数接受两个数字参数并返回它们的和。你可以编写以下测试函数来测试 add

// my_function_test.go

import (
    "testing"
)

func TestAdd(t *testing.T) {
    tests := []struct {
        a, b int
        want int
    }{
        {1, 2, 3},
        {3, 4, 7},
        {-1, -2, -3},
    }

    for _, tt := range tests {
        got := add(tt.a, tt.b)
        if got != tt.want {
            t.Errorf("add(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.want)
        }
    }
}
Copier après la connexion

Assertion

Dans la fonction test, utilisez des assertions pour vérifier si les résultats attendus sont cohérents avec les résultats réels. Le package testing fournit une variété de fonctions d'assertion, telles que :

t.Equal(a, b) : Vérifiez a et Si b est égalt.ErrorIs(err, ExpectedError) : Vérifiez si err et expectedError sont identiques error

    t.True(cond) : Vérifiez que cond est true
  • Cas pratique
Supposons que vous ayez un fichier nommée la fonction de add qui accepte deux arguments numériques et renvoie leur somme. Vous pouvez écrire la fonction de test suivante pour tester la fonction add : 🎜rrreee🎜🎜Debugging🎜🎜🎜Dans les cas où les tests de débogage échouent, vous pouvez utiliser le débogueur en définissant des points d'arrêt dans le code source. Dans les IDE comme VSCode, vous pouvez définir un point d'arrêt en cliquant avec le bouton droit sur une ligne du code et en sélectionnant « Définir/Supprimer le point d'arrêt ». Lorsque le code est exécuté dans le débogueur, il s'arrête aux points d'arrêt, vous permettant d'inspecter les variables et de piler les traces. 🎜🎜🎜Astuce🎜🎜🎜🎜Utilisez les tests basés sur des tableaux pour simplifier les tests de plusieurs ensembles d'entrées. 🎜🎜Utilisez des outils de couverture pour vous assurer que le code de test couvre suffisamment de logique de fonction. 🎜🎜Intégrez le code de test avec des systèmes d'intégration continue pour exécuter automatiquement des tests lorsque le code change. 🎜🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal