Table des matières
Comment tester des packages en langage Go ?
Écriture de tests
运行测试
使用子测试
实战案例
Maison développement back-end Golang Comment tester des packages dans Go ?

Comment tester des packages dans Go ?

Jun 01, 2024 am 11:50 AM
测试 go 语言

En utilisant le cadre de test intégré du langage Go, les développeurs peuvent facilement écrire et exécuter des tests pour leur code. Le fichier de test se termine par _test.go et contient des fonctions de test commençant par Test, où le paramètre *testing.T représente l'instance de test. Les messages d'erreur sont enregistrés à l'aide de t.Error(). Les tests peuvent être exécutés en exécutant la commande go test. Les sous-tests permettent de décomposer les fonctions de test en parties plus petites et de les créer via t.Run(). Un exemple pratique inclut un fichier de test écrit pour la fonction IsStringPalindrome() dans le package utils, qui teste l'exactitude de la fonction en utilisant une série de chaînes d'entrée et de sortie attendue.

如何在 Go 语言中测试包?

Comment tester des packages en langage Go ?

Le langage Go fournit un puissant cadre de test intégré qui permet aux développeurs d'écrire et d'exécuter facilement des tests pour leur code. Voici comment utiliser le package de test Go pour tester votre programme.

Écriture de tests

Dans Go, les fichiers de test se terminent par _test.go et sont placés dans le même répertoire que le package que vous souhaitez tester. Les fichiers de test contiennent une ou plusieurs fonctions de test commençant par Test suivi de la fonctionnalité à tester. Test 开头,后面跟要测试的功能。

以下是一个示例测试函数:

import "testing"

func TestAdd(t *testing.T) {
    if Add(1, 2) != 3 {
        t.Error("Add(1, 2) returned an incorrect result")
    }
}
Copier après la connexion

*testing.T 参数表示测试实例。错误信息使用 t.Error() 记录。

运行测试

可以通过运行以下命令来运行测试:

go test
Copier après la connexion

如果测试成功,将显示诸如 "PASS" 之类的消息。如果出现错误,将显示错误信息。

使用子测试

子测试允许将一个测试函数分解成更小的部分。这有助于组织测试代码并提高可读性。

以下是如何编写子测试:

func TestAdd(t *testing.T) {
    t.Run("PositiveNumbers", func(t *testing.T) {
        if Add(1, 2) != 3 {
            t.Error("Add(1, 2) returned an incorrect result")
        }
    })

    t.Run("NegativeNumbers", func(t *testing.T) {
        if Add(-1, -2) != -3 {
            t.Error("Add(-1, -2) returned an incorrect result")
        }
    })
}
Copier après la connexion

实战案例

假设我们有一个名为 utils 的包,里面包含一个 IsStringPalindrome() 函数,用于检查一个字符串是否是回文字符串。

下面是如何编写一个测试文件来测试这个函数:

package utils_test

import (
    "testing"
    "utils"
)

func TestIsStringPalindrome(t *testing.T) {
    tests := []struct {
        input    string
        expected bool
    }{
        {"", true},
        {"a", true},
        {"bb", true},
        {"racecar", true},
        {"level", true},
        {"hello", false},
        {"world", false},
    }

    for _, test := range tests {
        t.Run(test.input, func(t *testing.T) {
            if got := utils.IsStringPalindrome(test.input); got != test.expected {
                t.Errorf("IsStringPalindrome(%s) = %t; want %t", test.input, got, test.expected)
            }
        })
    }
}
Copier après la connexion

在这个测试文件中:

  • tests 数组定义了一系列输入字符串和预期的输出。
  • for 循环遍历 tests 数组,并使用 t.Run() 创建子测试。
  • 每个子测试调用 utils.IsStringPalindrome() 函数并将其结果与预期结果进行比较。如果结果不一致,它使用 t.Errorf()
  • Ce qui suit est un exemple de fonction de test :
rrreee🎜*testing.T Les paramètres représentent l'instance de test. Les messages d'erreur sont enregistrés en utilisant t.Error(). 🎜🎜Exécuter des tests🎜🎜Vous pouvez exécuter des tests en exécutant la commande suivante : 🎜rrreee🎜Si le test réussit, un message tel que "PASS" s'affichera. Si une erreur se produit, un message d'erreur s'affichera. 🎜🎜Utilisation de sous-tests🎜🎜Les sous-tests permettent de diviser une fonction de test en parties plus petites. Cela permet d'organiser le code de test et d'améliorer la lisibilité. 🎜🎜Voici comment écrire un sous-test : 🎜rrreee🎜Cas pratique🎜🎜Supposons que nous ayons un package nommé utils, qui contient une fonction IsStringPalindrome() pour vérifier si une chaîne est un palindrome. 🎜🎜Voici comment écrire un fichier de test pour tester cette fonction : 🎜rrreee🎜Dans ce fichier de test : 🎜
  • tests Le tableau définit une série de chaînes d'entrée et la sortie attendue. 🎜
  • for parcourt le tableau tests et crée des sous-tests en utilisant t.Run(). 🎜
  • Chaque sous-test appelle la fonction utils.IsStringPalindrome() et compare ses résultats aux résultats attendus. Si les résultats sont incohérents, il utilise t.Errorf() pour enregistrer une erreur. 🎜🎜

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que pensez-vous de furmark ? - Comment furmark est-il considéré comme qualifié ? Que pensez-vous de furmark ? - Comment furmark est-il considéré comme qualifié ? Mar 19, 2024 am 09:25 AM

Que pensez-vous de furmark ? 1. Définissez le « Mode d'exécution » et le « Mode d'affichage » dans l'interface principale, ajustez également le « Mode de test » et cliquez sur le bouton « Démarrer ». 2. Après avoir attendu un moment, vous verrez les résultats du test, y compris divers paramètres de la carte graphique. Comment Furmark est-il qualifié ? 1. Utilisez une machine à pâtisserie Furmark et vérifiez les résultats pendant environ une demi-heure. Elle oscille essentiellement autour de 85 degrés, avec une valeur maximale de 87 degrés et une température ambiante de 19 degrés. Grand châssis, 5 ports de ventilateur de châssis, deux à l'avant, deux en haut et un à l'arrière, mais un seul ventilateur est installé. Tous les accessoires ne sont pas overclockés. 2. Dans des circonstances normales, la température normale de la carte graphique doit être comprise entre « 30 et 85 ℃ ». 3. Même en été, lorsque la température ambiante est trop élevée, la température normale est de « 50 à 85 ℃.

Rejoignez une nouvelle aventure Xianxia ! Le pré-téléchargement de 'Zhu Xian 2' 'Wuwei Test' est maintenant disponible Rejoignez une nouvelle aventure Xianxia ! Le pré-téléchargement de 'Zhu Xian 2' 'Wuwei Test' est maintenant disponible Apr 22, 2024 pm 12:50 PM

Le « Test d'inaction » du nouveau MMORPG féerique fantastique « Zhu Xian 2 » sera lancé le 23 avril. Quel genre de nouvelle histoire d'aventure féerique se produira sur le continent Zhu Xian des milliers d'années après l'œuvre originale ? Le monde immortel des six royaumes, une académie à plein temps pour cultiver des immortels, une vie libre pour cultiver des immortels et toutes sortes de divertissements dans le monde immortel attendent que les amis immortels l'explorent en personne ! Le pré-téléchargement "Wuwei Test" est maintenant ouvert. Les amis fées peuvent accéder au site officiel pour télécharger. Vous ne pouvez pas vous connecter au serveur de jeu avant le lancement du serveur. Le code d'activation peut être utilisé après le pré-téléchargement et l'installation. est terminé. "Zhu Xian 2" "Inaction Test" horaires d'ouverture : 23 avril 10h00 - 6 mai 23h59 Le nouveau chapitre d'aventure de conte de fées de la suite orthodoxe de Zhu Xian "Zhu Xian 2" est basé sur le roman "Zhu Xian" comme un modèle basé sur la vision du monde de l'œuvre originale, l'arrière-plan du jeu est défini.

Compétences en tests de bases de données à Golang Compétences en tests de bases de données à Golang Aug 10, 2023 pm 02:51 PM

Compétences en matière de test de bases de données dans Golang Introduction : Les tests de bases de données sont un maillon très important lors du développement d'applications. Des méthodes de test appropriées peuvent nous aider à découvrir des problèmes potentiels et à garantir l'exactitude des opérations de la base de données. Cet article présentera quelques techniques courantes de test de bases de données dans Golang et fournira des exemples de code correspondants. 1. Tests à l'aide d'une base de données en mémoire Lors de l'écriture de tests liés aux bases de données, nous sommes généralement confrontés à une question : comment tester sans recourir à une base de données externe ? Ici, nous pouvons utiliser la mémoire

Le nouveau roi des FPS domestiques ! Le champ de bataille « Opération Delta » dépasse les attentes Le nouveau roi des FPS domestiques ! Le champ de bataille « Opération Delta » dépasse les attentes Mar 07, 2024 am 09:37 AM

"Opération Delta" lancera aujourd'hui (7 mars) un test PC à grande échelle appelé "Codename: ZERO". Le week-end dernier, ce jeu a organisé un événement d'expérience flash mob hors ligne à Shanghai, et 17173 a également eu la chance d'être invité à participer. Ce test remonte à un peu plus de quatre mois depuis le dernier, ce qui nous rend curieux, quels nouveaux points forts et surprises l'Opération Delta apportera-t-elle en si peu de temps ? Il y a plus de quatre mois, j'ai expérimenté « l'Opération Delta » lors d'une séance de dégustation hors ligne et la première version bêta. A cette époque, le jeu n'ouvrait que le mode "Action Dangereuse". Pourtant, l’opération Delta était déjà impressionnante pour l’époque. Dans un contexte où les grands constructeurs se ruent sur le marché du jeu mobile, un tel FPS comparable aux standards internationaux

Comment utiliser des packages tiers en langage Go ? Comment utiliser des packages tiers en langage Go ? Jun 01, 2024 am 11:39 AM

Pour utiliser des packages tiers dans Go : utilisez la commande goget pour installer le package, par exemple : gogetgithub.com/user/package. Importez le package, tel que : import("github.com/user/package"). Exemple : utilisez le package encoding/json pour analyser les données JSON : Installation : gogetencoding/json Importation : import("encoding/json") Analyse : json.Unmarshal([]byte(jsonString),&data)

Comment désactiver les cas de test dans Maven ? Comment désactiver les cas de test dans Maven ? Feb 26, 2024 am 09:57 AM

Maven est un outil de gestion de projet open source couramment utilisé pour des tâches telles que la construction, la gestion des dépendances et la publication de documents de projets Java. Lorsque nous utilisons Maven pour la construction d'un projet, nous souhaitons parfois ignorer la phase de test lors de l'exécution de commandes telles que mvnpackage, ce qui améliorera la vitesse de construction dans certains cas, en particulier lorsqu'un prototype ou un environnement de test doit être construit rapidement. Cet article détaillera comment ignorer la phase de test dans Maven, avec des exemples de code spécifiques. Pourquoi devriez-vous ignorer les tests Lors du développement d'un projet, il est souvent

PHP Jenkins 101 : la seule façon de démarrer avec CI/CD PHP Jenkins 101 : la seule façon de démarrer avec CI/CD Mar 09, 2024 am 10:28 AM

Introduction L'intégration continue (CI) et le déploiement continu (CD) sont des pratiques clés du développement de logiciels modernes qui aident les équipes à fournir des logiciels de haute qualité plus rapidement et de manière plus fiable. Jenkins est un outil CI/CD open source populaire qui automatise le processus de création, de test et de déploiement. Cet article explique comment configurer un pipeline CI/CD avec Jenkins à l'aide de PHP. Configurer Jenkins Installer Jenkins : Téléchargez et installez Jenkins à partir du site Web officiel de Jenkins. Créer un projet : créez un nouveau projet à partir du tableau de bord Jenkins et nommez-le en fonction de votre projet php. Configurer le contrôle de source : configurez le référentiel git de votre projet PHP en tant que Jenkin

Quelles sont les différences entre les tests fonctionnels et la couverture dans différentes langues ? Quelles sont les différences entre les tests fonctionnels et la couverture dans différentes langues ? Apr 27, 2024 am 11:30 AM

Les tests fonctionnels vérifient la fonctionnalité des fonctions via des tests en boîte noire et en boîte blanche, tandis que la couverture du code mesure la partie du code couverte par les scénarios de test. Différents langages (tels que Python et Java) ont des cadres de test, des outils de couverture et des fonctionnalités différents. Des cas pratiques montrent comment utiliser Unittest et Coverage de Python et JUnit et JaCoCo de Java pour les tests de fonctions et l'évaluation de la couverture.

See all articles