Maison > Article > développement back-end > Un article expliquant en détail l'utilisation de l'outil de test Golang
Avec le développement continu du processus de développement logiciel, les tests automatisés sont progressivement devenus l'une des principales formes de tests logiciels. Cependant, la sélection des outils de test ainsi que le processus d’apprentissage et d’utilisation de ceux-ci peuvent souvent devenir déroutants et délicats. Dans cet article, nous discuterons de l'utilisation de l'outil de test Golang, un cadre de test simple mais puissant qui peut vous aider à rédiger des cas de test de haute qualité et à garantir que votre code fonctionne parfaitement dans les applications du monde réel.
Qu'est-ce que le test Golang ?
golang test est le framework de test officiel fourni avec le langage de programmation Go, qui permet aux développeurs d'écrire et d'exécuter facilement des cas de test, ainsi que de générer des rapports de couverture de test dans le référentiel de code à l'aide de l'outil de ligne de commande go test. Sa simplicité et sa flexibilité en font le framework de test de choix pour de nombreux développeurs Go.
Utilisation du test Golang
Le test Golang prend en charge trois types de tests : le test unitaire, le test de performances et le test d'échantillon.
Tests unitaires
Écrire des tests unitaires dans Go est très simple. Créez simplement un nouveau fichier Go qui se termine par _test
et écrivez une ou plusieurs fonctions qui commencent par Test
et acceptez un paramètre *T
, comme indiqué ci-dessous : _test
结尾,并编写一个或多个函数,这些函数以 Test
开头并接受一个 *testing.T
参数,如下所示:
package mypackage_test import ( "testing" ) func TestAdd(t *testing.T) { if Add(1, 2) != 3 { t.Errorf("Expected 3 but got %d", Add(1, 2)) } }
在这个示例中,我们测试了一个名为 Add 的函数,该函数返回传递给它的两个数字的和。如果我们运行测试,它将输出类似于 --- FAIL: TestAdd (0.00s)
这样的结果,因为断言失败了。如果测试成功,将输出 PASS
。
性能测试
在 Go 中,性能测试同样简单。您只需要使用一个名为 Benchmark
的函数来编写一个性能测试,该函数接受一个 *testing.B
参数,如下所示:
func BenchmarkAdd(b *testing.B) { for i := 0; i < b.N; i++ { Add(1, 2) } }
该示例测试了我们的 Add 函数的性能,该函数将两个数字相加。在测试中,我们将 Add 函数调用 b.N
次,并测量测试的总时间。Golang test 将输出一个结果表,其中包含每个测试的平均时间以及每个迭代的总时间。
示例测试
示例测试编写是 Golang test 的另一种模式。在这种模式下,我们编写一些简单的使用示例,以演示您的代码如何工作。Golang test 将生成实际的测试代码,并在执行测试时运行这些示例。示例测试可以通过创建一个名为 examples_test.go
的文件来定义,其中包含示例函数。
func ExampleAdd() { fmt.Println(Add(1, 2)) // Output: 3 }
在该示例中,我们编写了一个 Add 函数的示例,对其进行了调用,并测试了输出是否正确。如果我们运行 go test
,则可以看到示例测试的输出。
测试覆盖率
golang test 还支持通过 go test -cover
PASS coverage: 80.8% of statements ok mypackage 0.062sDans cet exemple, nous testons une fonction appelée Add qui renvoie la somme de deux nombres qui lui sont transmis. Si nous exécutons le test, il affichera quelque chose comme
--- FAIL: TestAdd (0.00s)
car l'assertion a échoué. Si le test réussit, PASS
sera affiché. Tests de performancesDans Go, les tests de performances sont tout aussi simples. Il vous suffit d'écrire un test de performances en utilisant une fonction appelée Benchmark
qui accepte un paramètre *testing.B
comme ceci : rrreee
Cet exemple de test Cela améliore les performances de notre Fonction Add, qui ajoute deux nombres. Dans le test, nous appelons la fonction Addb.N
fois et mesurons la durée totale du test. Le test Golang affichera un tableau de résultats avec la durée moyenne de chaque test et la durée totale de chaque itération. 🎜🎜Exemple de test🎜🎜Un exemple d'écriture de test est un autre mode de test Golang. Dans ce mode, nous écrivons quelques exemples d'utilisation simples pour démontrer le fonctionnement de votre code. Le test Golang générera le code de test réel et exécutera les exemples lors de l'exécution des tests. Des exemples de tests peuvent être définis en créant un fichier appelé examples_test.go
qui contient les exemples de fonctions. 🎜rrreee🎜Dans cet exemple, nous avons écrit un exemple de la fonction Add, l'avons appelée et testé que la sortie était correcte. Si nous exécutons go test
, nous pouvons voir le résultat de l'exemple de test. 🎜🎜Couverture des tests🎜🎜golang test prend également en charge la génération d'informations sur la couverture du code via la commande go test -cover
. Les tests de couverture vous aident à déterminer si les tests que vous écrivez couvrent toutes les situations de votre code. Un rapport de couverture ressemble généralement à ceci : 🎜rrreee🎜Dans cet exemple, notre couverture de test est de 80,8 %. 🎜🎜Conclusion🎜🎜Dans cet article, nous avons discuté de l'utilisation du test Golang. Il s'agit d'un cadre de test simple mais puissant qui vous aide à rédiger des cas de test de haute qualité pour garantir que votre code fonctionne parfaitement dans les applications du monde réel. Nous avons vu l'utilisation de tests unitaires, de tests de performances et d'exemples de tests, ainsi que la manière de générer des rapports sur la couverture des tests. Vous pouvez maintenant commencer à utiliser Golang Test pour créer de puissantes suites de tests afin de garantir que votre code fonctionne correctement dans diverses circonstances. 🎜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!