Maison  >  Article  >  développement back-end  >  Comment utiliser la bibliothèque standard Go pour les tests unitaires

Comment utiliser la bibliothèque standard Go pour les tests unitaires

王林
王林original
2024-04-30 18:39:02327parcourir

La bibliothèque standard Go fournit des fonctionnalités de tests unitaires via le package de tests. Créez simplement le fichier _test.go et écrivez la fonction de test. Les fonctions de test utilisent des fonctions d'assertion, telles que AssertEqual et AssertTrue, pour comparer les résultats attendus et réels. Les informations indiquant si le test a réussi ou échoué seront affichées avec la commande go test.

如何使用 Go 标准库进行单元测试

Comment utiliser la bibliothèque standard Go pour les tests unitaires

La bibliothèque standard Go fournit le package testing, qui fournit de riches fonctionnalités pour l'écriture et l'exécution de tests unitaires. Cet article vous expliquera comment utiliser le package testing pour tester votre code Go. testing 包,它提供了丰富的功能,用于编写和运行单元测试。本文将指导你如何使用 testing 包来测试你的 Go 代码。

设置单元测试

要为 Go 程序设置单元测试,请按照以下步骤操作:

  1. 在项目的根目录中创建一个名为 your_package_name_test.go 的文件。
  2. 导入 testing 包:
import "testing"

编写测试函数

每个单元测试都作为一个独立的函数编写,名为 func TestX(t *testing.T)。其中 X 是测试案例的名称,而 t 是一个 *testing.T 类型的指针,它提供了用于执行测试、报告结果和记录错误的方法。

func TestPassingTest(t *testing.T) {
    // 测试用例的代码...
}

断言

testing 包提供了多种断言函数来比较测试结果和预期值。常用的断言函数包括:

  • AssertEqual(t, expected, actual):检查 expectedactual 是否相等
  • AssertNotEqual(t, value1, value2):检查 value1value2 是否不相等
  • AssertTrue(t, condition):断言条件 condition 为真
  • AssertFalse(t, condition):断言条件 condition 为假

实战案例

让我们为一个计算两个数字之和的函数编写一个单元测试。

package my_package

import (
    "testing"
)

func Sum(a, b int) int {
    return a + b
}

单元测试

import (
    "testing"

    "my_package"
)

func TestSum(t *testing.T) {
    tests := []struct {
        a        int
        b        int
        expected int
    }{
        {1, 2, 3},
        {5, 7, 12},
    }

    for _, tc := range tests {
        result := my_package.Sum(tc.a, tc.b)
        if result != tc.expected {
            t.Errorf("Sum(%d, %d) returned %d, expected %d", tc.a, tc.b, result, tc.expected)
        }
    }
}

在单元测试中,我们创建了一个 []struct 类型的测试用例列表,其中包含输入值和预期的输出。我们使用循环遍历测试用例,并针对每个用例使用 AssertEqual 断言来验证计算的结果与预期结果是否一致。

运行单元测试

要运行单元测试,可以在命令行中运行以下命令:

go test

它将在项目目录及其子目录中查找所有 _test.go

Configurer les tests unitaires

Pour configurer les tests unitaires pour votre programme Go, suivez ces étapes : 🎜
  1. Créez un fichier appelé your_package_name_test.go fichier.
  2. Importer le package testing :
rrreee

Fonction de test d'écriture

🎜Chaque test unitaire est écrit comme une fonction indépendante, on l'appelle func TestX(t *testing.T). Où X est le nom du scénario de test et t est un pointeur de type *testing.T, qui fournit des fonctions pour exécuter des tests et reporting Résultats et méthodes d'enregistrement des erreurs. 🎜rrreee

Assertions

🎜Le package testing fournit une variété de fonctions d'assertion pour comparer les résultats des tests avec les valeurs attendues. Les fonctions d'assertion couramment utilisées incluent : 🎜
  • AssertEqual(t, Expected, Actual) : Vérifiez si expected et actual sont égaux
  • AssertNotEqual(t, value1, value2) : Vérifiez si value1 et value2 ne sont pas égaux
  • AssertTrue(t, condition) : affirme que la condition condition est vraie
  • AssertFalse(t, condition) : Affirmez que la conditioncondition est fausse

Cas pratique

🎜Écrivons un test unitaire pour une fonction qui calcule la somme de deux nombres. 🎜rrreee🎜Tests unitaires🎜rrreee🎜Dans les tests unitaires, nous créons une liste de cas de test de type []struct qui contient les valeurs d'entrée et la sortie attendue. Nous utilisons une boucle pour parcourir les cas de test et utilisons des assertions AssertEqual pour chaque cas afin de vérifier que les résultats calculés sont cohérents avec les résultats attendus. 🎜

Exécuter des tests unitaires

🎜Pour exécuter des tests unitaires, vous pouvez exécuter la commande suivante dans la ligne de commande : 🎜rrreee🎜Il recherchera tous les _test.godans le répertoire du projet et ses sous-répertoires > fichier et exécutez les tests qu'il contient. Les tests qui s'exécutent avec succès afficheront un message de réussite vert, tandis que les tests échoués afficheront un message d'erreur rouge. 🎜

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!

Déclaration:
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