Table des matières
Comment rédiger un test unitaire de base
Tests basés sur la table: un moyen plus propre de tester plusieurs cas
Exécuter des tests spécifiques et obtenir plus de sortie
Maison développement back-end Golang Qu'est-ce que les tests en Go et comment écrire des tests unitaires?

Qu'est-ce que les tests en Go et comment écrire des tests unitaires?

Jun 20, 2025 am 08:41 AM
go Tests unitaires

Les tests unitaires de GO sont mis en œuvre via le package de tests intégré, et les développeurs doivent uniquement suivre la spécification de dénomination pour écrire et exécuter des tests. Les étapes spécifiques incluent: 1. Créez un fichier de test se terminant avec _test.go; 2. Écrivez une fonction de test en commençant par le test; 3. Signaler une erreur avec T.Errorf (); 4. Exécutez le test à l'aide de la commande go test; 5. Testez plusieurs cas d'utilisation avec le pilote de table; 6. Exécutez un test spécifique à l'aide de l'indicateur -RUN et obtenez une sortie détaillée à l'aide de l'indicateur -v. Par exemple, lors du test de la fonction ADD, vous pouvez écrire la fonction TestAdd dans math_test.go et définir plusieurs ensembles d'entrée et de sortie via la structure de vérification. De plus, vous pouvez exécuter le test spécifié via GO Test -Run TestAdd, ou afficher les informations de journal détaillées via GO Test -V.

Qu'est-ce que les tests en Go et comment écrire des tests unitaires?

Testing in Go est une fonctionnalité intégrée qui permet aux développeurs d'écrire et d'exécuter des tests directement à côté de leur code, sans avoir besoin de bibliothèques tierces. Les tests unitaires dans GO sont simples - il utilise le package testing et suivi une simple convention de dénomination pour les fonctions de test.

Comment rédiger un test unitaire de base

Pour écrire un test unitaire en Go, vous créez une fonction dans un fichier _test.go . Le nom de la fonction doit commencer par Test , suivi du nom de la fonction ou de la méthode testée.

Par exemple, si vous avez une fonction appelée Add dans un fichier nommé math.go , vous rédigeriez son test dans un fichier nommé math_test.go . Voici à quoi pourrait ressembler un test de base:

 package principal

Importer des "tests"

func testadd (t * test.t) {
    Résultat: = ajouter (2, 3)
    attendu: = 5

    Si résultat! = attendu {
        t.errorf ("attendu% d, got% d", attendu, résultat)
    }
}
  • Assurez-vous que vos fichiers de test se terminent dans _test.go
  • Importer le package testing
  • Utilisez t.Errorf() (ou méthodes similaires) pour signaler les défaillances

Lorsque vous êtes prêt à exécuter le test, utilisez la ligne de commande:

 faire un test

Si tout passe, vous verrez un message PASS . Si quelque chose échoue, GO vous montrera exactement quel test a échoué et pourquoi.

Tests basés sur la table: un moyen plus propre de tester plusieurs cas

Les développeurs GO utilisent souvent des tests basés sur la table pour vérifier plusieurs combinaisons d'entrée-sortie dans une seule fonction de test. Cela maintient les tests concis et faciles à entretenir.

Voici un exemple en utilisant la même fonction Add :

 func testadd (t * test.t) {
    Tests: = [] struct {
        A, B int
        Attendez-vous à Int
    } {
        {2, 3, 5},
        {0, 0, 0},
        {-1, 1, 0},
        {100, 200, 300},
    }

    pour _, TT: = Tests de plage {
        Résultat: = add (tt.a, tt.b)
        Si résultat! = tt.expect {
            T.Errorf ("Add (% d,% d): attendu% d, got% d", tt.a, tt.b, tt.expect, résultat)
        }
    }
}

Cette approche facilite:

  • Ajoutez plus de cas de test rapidement
  • Voir ce qui est testé en un coup d'œil
  • Réutiliser la même logique d'affirmation dans tous les cas

De nombreux projets GO préfèrent ce style car il réduit la duplication et améliore la lecture.

Exécuter des tests spécifiques et obtenir plus de sortie

Si vous avez beaucoup de tests et que vous souhaitez en exécuter un, vous pouvez utiliser le drapeau -run suivi d'une expression régulière correspondant au nom du test:

 aller test -run testadd

Pour obtenir une sortie plus détaillée, y compris les journaux de t.Log() ou fmt.Println() , ajoutez l'indicateur -v :

 aller tester -v

Vous pouvez également combiner des drapeaux:

 aller test -v -run testadd

Ces options sont pratiques lors du débogage des tests d'échec ou lorsque vous travaillez sur une partie spécifique de votre base de code.


Ce sont les bases de l'écriture et de l'exécution de tests en Go. Ce n'est pas compliqué, mais il y a quelques petites règles à retenir, comme les conventions de dénomination et où placer vos fichiers de test.

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Porce de variable PHP expliquée
1 Il y a quelques mois By 百草
Commentant le code en php
1 Il y a quelques mois By 百草
<🎜>: Grow A Garden - Guide complet des marchands itinérants
4 Il y a quelques semaines By Jack chen
Conseils pour écrire des commentaires PHP
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)

Sujets chauds

Tutoriel PHP
1511
276
Quelles sont les meilleures pratiques pour vous connecter? Quelles sont les meilleures pratiques pour vous connecter? Aug 04, 2025 pm 04:48 PM

En utilisant la journalisation structurée, en ajoutant du contexte, en contrôlant les niveaux de journal, en évitant les données sensibles à la journalisation, en utilisant des noms de champ cohérents, en enregistrant correctement les erreurs, en prenant en compte les performances, en surveillant les journaux et des configurations unificatrices de manière centralisée sont les meilleures pratiques pour obtenir une journalisation efficace. Tout d'abord, les journaux structurés au format JSON (comme l'utilisation d'Uber-GO / ZAP ou de RS / Zerolog) facilitent l'analyse de la machine et l'intégration de wapitis, de la forme de données et d'autres outils; Deuxièmement, la traçabilité du journal est améliorée en demandant des informations de contexte telles que l'ID et l'ID utilisateur, et peut être injectée via Context.Context ou HTTP Middleware; Troisièmement, utilisez le débogage, les informations, les avertissements, les niveaux d'erreur raisonnablement et fonctionnent via des variables environnementales.

Comment fermer gracieusement un service GO? Comment fermer gracieusement un service GO? Aug 05, 2025 pm 08:21 PM

Usesignal.notify () TolistenForsigint / SigterandTriggersHutdown; 2.RunthehttpServerinagoroutineandblockuntilasignalisreceived; 3.CallServer.Shutdown () avec un aontextTimeoutTostopaccepingEptureNewrequestSallowine-FLIMESTOSTOCLEM

Comment obtenir l'heure actuelle en Go Comment obtenir l'heure actuelle en Go Aug 06, 2025 am 11:28 AM

UseTime.now () togetTheCurrentLocaltimeAsatime.TimeObject; 2.FormatTheTimeusingtheformatmethodwithlayoutslik "2006-01-0215: 04: 05"; 3.GetUtCtimeByCallingUtc () onTheResultime.now (); 4.xtractconntslikeliseyyar, mois, DayUsiTheThoDs

Comment analyser les données XML dans Go Comment analyser les données XML dans Go Aug 05, 2025 pm 07:24 PM

Les données XML d'analyse sont très simples en Go, utilisez simplement le package d'encodage / XML intégré. 1. Définissez une structure avec la balise XML pour mapper des éléments et des attributs XML, tels que XML: "Nom" Eléments enfants correspondants, XML: "Contact> Email" Père la nidification, XML: "ID, AttR" lit Attributs; 2. Utilisez XML.unmarshal pour analyser les chaînes XML en structures; 3. Pour les fichiers, utilisez OS.Open pour les ouvrir et les décoder via XML.NewDecoder, qui convient au traitement en streaming des fichiers volumineux; 4. Lors du traitement des éléments en double, dans la structure

Comment créer et utiliser des types d'erreur personnalisés dans Go Comment créer et utiliser des types d'erreur personnalisés dans Go Aug 11, 2025 pm 11:08 PM

Dans GO, la création et l'utilisation de types d'erreurs personnalisés peuvent améliorer l'expressivité et la débogabilité de la gestion des erreurs. La réponse est de créer une erreur personnalisée en définissant une structure qui implémente la méthode Error (). Par exemple, ValidationError contient des champs de champ et de messages et renvoie les informations d'erreur formatées. L'erreur peut ensuite être renvoyée dans la fonction, détectant des types d'erreur spécifiques via des assertions ou des erreurs de type. Vous pouvez également ajouter des méthodes comportementales telles que les erreurs ISCRITIQUES à personnalisées, qui conviennent aux scénarios qui nécessitent des données structurées, un traitement différencié, une exportation de bibliothèque ou une intégration API. Dans des cas simples, des erreurs.

Comment profitez-vous du code GO pour les performances? Comment profitez-vous du code GO pour les performances? Aug 05, 2025 am 08:50 AM

L'analyse des performances du code GO peut être implémentée via l'outil PPROF intégré. Tout d'abord, importez le point de terminaison de débogage pour activer le \ _ "net / http / pprof"; 1. Pour les services HTTP, démarrez l'interface PPROF de LocalHost: 6060 dans le programme; 2. Utilisez gotoolpprof http: // localhost: 6060 / debug / pprof / profil? Seconds = 30 pour collecter 30 secondes de données de performance CPU; 3. Analyser l'allocation de la mémoire via Gotoolpprof http: // localhost: 6060 / debug / pprof / tas; 4. Activer la course

Jest avancé et modèles les plus vites pour des tests unitaires efficaces Jest avancé et modèles les plus vites pour des tests unitaires efficaces Aug 06, 2025 am 12:23 AM

Évitez-vous se moquer du fait de l'appartenance de laARtiale et de la sieste-interaction avec les impléments de la surlance-imitations, moqueurs

Construire une API sans serveur avec des fonctions GO et Cloud Construire une API sans serveur avec des fonctions GO et Cloud Aug 05, 2025 pm 01:21 PM

Pour créer une API sans serveur, vous devez configurer un environnement GO et installer GoogleCloudsdk, puis écrire une fonction HTTP pour gérer la demande et enfin déployer sur des fonctions de cloud via GCloudCLI. 1. Installez Go1.18 et GoogleCloudsdk et configurez le projet; 2. Créer des modules GO et écrire des fonctions de traitement HTTP, prendre en charge les méthodes de GET et POST, Processez l'entrée JSON et la réponse de retour; 3. Simplifiez le code et conservez uniquement la fonction de gestionnaire, supprimez la logique du serveur local; 4. Utilisez la commande gcloud pour déployer la fonction, spécifiez la méthode d'exécution, de point d'entrée et de déclenchement; 5. Testez les interfaces Get et Post de l'API, vérifiez le retour

See all articles