Réutilisation du code de test dans les packages importés dans Go
Dans votre structure de répertoires, vous disposez d'une fonction utilitaire de test dans pkg1_test.go que vous souhaitez à utiliser dans main_test.go, qui importe pkg1. Cependant, la fonction dans pkg1_test.go utilise une fonction non exportée dans pkg1, la rendant indisponible en dehors du package.
Considérez les approches suivantes :
Déplacer la fonction vers pkg1.go
Bien que déplacer la fonction vers pkg1.go la rendrait accessible dans main_test.go, cela pourrait conduire à ce que la fonction soit incluse dans le binaire généré par go build. Ceci n'est pas souhaitable pour les fonctions de test uniquement.
Création d'un package d'utilitaires de test distinct
Déplacement de la fonction vers un package d'utilitaires de test distinct et importation manuelle dans *_test. go files semble idéal. Cependant, la fonction nécessite toujours l'accès aux méthodes internes du pkg1, qui ne peuvent pas être exportées.
Une approche hybride
Pour votre scénario spécifique, une approche hybride offre un solution :
Dans pkg1_test.go, ajoutez une fonction comme celle-ci :
<code class="go">func getPrivateData() []byte { // Code to get internal data from pkg1 }</code>
Cette approche vous permet de réutiliser votre fonction utilitaire de test tout en la gardant séparée du code de production et en évitant le problème des fonctions non exportées.
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!