Il existe trois techniques pour déboguer et tester les fonctions Go : utiliser le débogueur dlv pour parcourir le code, inspecter les variables et modifier l'état du code. Testez les fonctions en écrivant des fonctions de test dans le fichier _test.go et en vérifiant les résultats à l'aide de fonctions d'assertion. En combat réel, vous pouvez utiliser dlv pour déboguer l'exécution de la fonction, et utiliser le cadre de test et la fonction d'assertion pour vérifier l'exactitude de la fonction.
Débogage et test des fonctions Go
Introduction
Le langage Go fournit des outils puissants pour aider les développeurs à déboguer et tester les fonctions. Cet article présentera différentes techniques de débogage et de test des fonctions Go.
Débogage
Le débogueur Go (dlv) est un outil puissant qui peut être utilisé pour parcourir le code, inspecter les variables et modifier l'état du code.
1. Installez et utilisez dlv
allez installer github.com/go-delve/delve/cmd/dlv@latest
go install github.com/go-delve/delve/cmd/dlv@latest
dlv debug -- <function_name></function_name>
2. 调试命令
n
:单步进入函数s
:单步进入函数并暂停l
:列出当前作用域中的变量p
:打印指定变量的值cont
:继续执行测试
Go 测试框架提供了测试函数和程序的能力。
1. 创建测试文件
测试文件以 _test.go
为后缀,位于与要测试的代码相同的包中。
2. 编写测试函数
测试函数以 Test
开头,后跟被测试的函数名。它们遵循以下格式:
func Test<FunctionName>(t *testing.T) { // 测试代码 }
3. 断言
断言用于验证测试结果。Go 测试框架提供了诸如 Equal()
, NotEqual()
, True()
, False()
Fonction de débogage : dlv debug -- <function_name>
2. Commande de débogage
n
: une seule étape dans la fonction
l
: Liste les variables dans la portée actuelle
p
: Imprimer la valeur de la variable spécifiée🎜cont
: Continuer l'exécution🎜🎜Testing🎜🎜🎜Le framework de test Go offre la possibilité de tester des fonctions et des programmes. 🎜🎜🎜1. Créez un fichier de test 🎜🎜🎜Le fichier de test porte le suffixe _test.go
et se trouve dans le même package que le code à tester. 🎜🎜🎜2. Écrire une fonction de test 🎜🎜🎜La fonction de test commence par Test
, suivi du nom de la fonction testée. Ils suivent le format suivant : 🎜func Sum(a int, b int) int { return a + b }
Equal()
, NotEqual()
, True()
, False()
fonction d'assertion. 🎜🎜🎜4. Cas pratique 🎜🎜🎜Considérons la fonction Go suivante : 🎜import ( "testing" ) func TestSum(t *testing.T) { type testCase struct { a, b, expected int } testCases := []testCase{ {1, 2, 3}, {-1, 5, 4}, {10, 10, 20}, } for _, tc := range testCases { result := Sum(tc.a, tc.b) if result != tc.expected { t.Errorf("Expected %v, got %v", tc.expected, result) } } }
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!