Expérience pratique du développement piloté par les tests à Golang
Aperçu :
Le développement piloté par les tests (TDD) est une méthode de développement logiciel courante. Il met l'accent sur l'écriture de code de test qui vérifie la fonctionnalité avant d'écrire le code réel. En écrivant du code de test, les développeurs peuvent mieux comprendre les exigences, définir avec précision les interfaces et améliorer la qualité et la maintenabilité du code. Cet article prendra le langage Golang comme exemple pour présenter comment utiliser le développement TDD dans des projets réels.
Dans Golang, il existe de nombreux outils de gestion des dépendances parmi lesquels choisir. Les plus courants incluent go mod, dep, etc. En prenant go mod comme exemple, utilisez la commande suivante pour initialiser le projet :
go mod init <项目名>
_test.go
et Test
est ajouté avant le nom de la fonction. _test.go
为后缀,并且在函数名前加上Test
。以一个简单的计算器为例,我们可以创建一个calculator_test.go
的文件,并编写测试代码:
package main import ( "testing" ) func TestAdd(t *testing.T) { c := add(2, 3) if c != 5 { t.Error("Expected 5, got ", c) } } func TestSubtract(t *testing.T) { c := subtract(5, 2) if c != 3 { t.Error("Expected 3, got ", c) } }
calculator.go
文件中编写功能代码:package main func add(a, b int) int { return a + b } func subtract(a, b int) int { return a - b }
go test
如果输出结果中没有出现错误,那么说明测试通过。
例如,我们可以添加一个测试来测试乘法运算:
func TestMultiply(t *testing.T) { c := multiply(4, 3) if c != 12 { t.Error("Expected 12, got ", c) } }
然后,在功能代码中添加乘法函数:
func multiply(a, b int) int { return a * b }
再次运行go test
calculator_test.go
et écrire le code du test : func TestDivideByZero(t *testing.T) { defer func() { if r := recover(); r != nil { if r != "divide by zero" { t.Error("Expected 'divide by zero' error") } } else { t.Error("Expected 'divide by zero' error") } }() divide(5, 0) }
calculator.go
: func divide(a, b int) int { if b == 0 { panic("divide by zero") } return a / b }
Une fois le code de test et le code de fonction écrits, nous pouvons exécuter du code de test pour vérifier la fonctionnalité. Dans le répertoire racine du projet, exécutez la commande suivante :
rrreee
S'il n'y a aucune erreur dans la sortie, le test réussit.Par exemple, on peut ajouter un test pour tester l'opération de multiplication :
rrreee🎜Ensuite, ajouter la fonction de multiplication dans le code de la fonction : 🎜rrreee🎜Exécuter à nouveau la commandego test
, si le le test réussit, cela signifie que notre développement itératif est sur le point. 🎜🎜🎜Gestion des situations anormales🎜Dans le développement réel, nous devons prendre en compte diverses situations anormales et écrire les codes de test correspondants. 🎜🎜🎜Par exemple, dans la calculatrice, il faut considérer le cas où le diviseur est 0. Nous pouvons ajouter un test comme celui-ci : 🎜rrreee🎜 Ensuite, ajoutez la fonction de division dans le code de la fonction : 🎜rrreee🎜Exécutez le test et nous obtiendrons un résultat de test réussi. 🎜🎜Résumé : 🎜Grâce au développement TDD, nous pouvons améliorer la qualité et la maintenabilité du code. Dans Golang, en écrivant du code de test, nous pouvons mieux comprendre les exigences, définir avec précision l'interface et garantir l'exactitude du code. 🎜🎜Bien que TDD augmente le temps de développement et la charge de travail, il peut réduire le temps de débogage et de maintenance ultérieur, améliorer l'efficacité du développement et la qualité du code. Par conséquent, TDD revêt une grande importance dans les projets réels, en particulier les projets impliquant une logique complexe et des changements fréquents d'exigences. 🎜🎜Grâce à l'introduction de cet article, j'espère que les lecteurs pourront mieux comprendre et appliquer l'expérience pratique du développement piloté par les tests dans Golang. Créons ensemble du code de haute qualité ! 🎜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!