Maison >développement back-end >Golang >Comment puis-je éviter la duplication du code de test dans les packages Go avec plusieurs fichiers ?

Comment puis-je éviter la duplication du code de test dans les packages Go avec plusieurs fichiers ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 10:00:03628parcourir

How Can I Avoid Test Code Duplication in Go Packages with Multiple Files?

Gestion du code de test partagé dans les packages Go avec plusieurs fichiers

Dans les packages Go avec plusieurs fichiers, il est courant de créer des fichiers de test distincts pour chacun fichier source. Cependant, cela peut conduire à une duplication de code lorsque les tests nécessitent des fonctions d'assistance partagées.

La solution : utiliser les identifiants partagés des packages de test

Pour éviter la réplication de code, Go autorise les tests fichiers dans la même clause package pour faire référence aux identifiants exportés et non exportés de chacun sans instructions d'importation explicites. Cela signifie que vous pouvez placer du code de test partagé dans n'importe lequel des fichiers de test et qu'il sera accessible à tous les autres fichiers de test du même package.

Exemple de structure

Considérez un package avec les fichiers suivants :

mypackage/
    mypackage.go
    mypackage_test.go
    helper_test.go

Vous pouvez définir des fonctions d'aide aux tests partagées dans helper_test.go sans polluer le code de production.

Explication

Même si helper_test.go n'est pas directement importé dans mypackage_test.go, il appartient toujours au même package de test en raison de la clause de package correspondante (package mypackage_test). Cela permet à mypackage_test.go d'accéder aux identifiants déclarés dans helper_test.go, permettant le partage de code et la maintenabilité des tests.

Notes supplémentaires

  • Vous n'êtes pas obligé pour créer un fichier de test pour chaque fichier source.
  • Les fichiers de test sans fichiers source correspondants sont également pris en charge.
  • Les fichiers de test appartiennent à différents packages de test si leurs clauses de package diffèrent.

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