Maison >développement back-end >Golang >Comment couvrir le code dans les tests unitaires Golang ?
Comment couvrir le code dans les tests unitaires Golang ? Méthode : utilisez l'outil de couverture intégré (allez tester -cover). Utilisez des bibliothèques tierces, telles que la fonction assert de testify. Exemple pratique : utilisez l'outil de couverture et la fonction d'assertion de témoignage pour mesurer la couverture de code de la fonction Factorielle et générer un rapport HTML pour afficher des informations détaillées.
Comment couvrir le code dans les tests unitaires Golang ?
Introduction
La couverture du code est une métrique qui mesure la part du code cible couverte par une suite de tests. Dans les tests unitaires, une couverture de code élevée indique que la majeure partie de la logique métier a été testée, améliorant ainsi la fiabilité du test.
Méthode
1. Utiliser l'outil de couverture de code
Le langage Go fournit l'outil cover
pour mesurer la couverture de code. Pour l'utiliser, en plus de la commande normale go test
, vous devez également ajouter l'indicateur -cover
: cover
工具来测量代码覆盖率。要使用它,除了正常的 go test
命令外,还需要添加 -cover
标志:
go test -cover
2. 利用第三方库
还有许多第三方库可以提供更详细的代码覆盖率报告。例如,可以使用 testify
中的 assert
函数:
import ( "testing" "github.com/stretchr/testify/assert" ) func TestSomething(t *testing.T) { assert.Equal(t, 1, something()) // 覆盖了 something() 函数的 return 语句 }
实战案例
下面是一个简单的 Go 语言函数和相关的单元测试:
// main.go package main func Factorial(n int) int { if n == 0 { return 1 } return n * Factorial(n-1) } func main() { println(Factorial(5)) // 输出:120 }
// factorial_test.go package main import "testing" func TestFactorial(t *testing.T) { // 记录 Factorial 函数的覆盖率 t.Run("Cover", func(t *testing.T) { cases := []int{0, 1, 5, 10} for _, n := range cases { Factorial(n) } }) }
运行测试:
go test -cover -coverprofile=cover.out
然后,使用 go tool cover -html=cover.out
rrreee
assert
dans testify
: 🎜rrreee🎜🎜Cas pratique🎜🎜🎜Ce qui suit est une simple fonction du langage Go et les tests unitaires associés : 🎜rrreeerrreee 🎜 Exécutez le test : 🎜rrreee🎜 Ensuite, utilisez go tool cover -html=cover.out
pour générer un rapport HTML qui montre les détails de la couverture. 🎜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!