Maison  >  Article  >  développement back-end  >  Comment réutiliser le code de test dans les packages importés tout en gardant les fonctions internes privées ?

Comment réutiliser le code de test dans les packages importés tout en gardant les fonctions internes privées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 02:39:01606parcourir

How to Reuse Test Code in Imported Packages While Keeping Internal Functions Private?

Code de test réutilisable dans les packages importés

Dans le scénario fourni, vous disposez d'un fichier de test (main_test.go) qui nécessite l'accès à un fonction de test uniquement dans un autre package (pkg1_test.go). Cela pose le défi de réutiliser le code de test dans les packages importés.

Solutions possibles et leurs inconvénients :

  • Déplacer les fonctions vers pkg1.go : Cela rend les fonctions disponibles pour main_test.go mais elles peuvent faire partie du binaire, qui est indésirable.
  • Utilisez un package testutility distinct : Bien que cela vous permette de regrouper des fonctions de test uniquement, cela introduit la dépendance aux méthodes internes dans pkg1, créant des problèmes potentiels.

Solution recommandée :

Au lieu d'utiliser l'une des méthodes ci-dessus, envisagez l'approche suivante :

  1. Créez un package de support : Déplacez les fonctions de test uniquement vers un nouveau package, appelé support. Ce package ne doit s'appuyer que sur les interfaces publiques de pkg1.
  2. Utilisez un fichier de support : Dans le support, définissez un fichier de support qui contient la sortie de la fonction privée de pkg1.
  3. Charger le fichier de support dans la fonction de support : Dans le package de support, créez une fonction qui charge le fichier de support et effectue les tâches nécessaires opérations.
  4. **Appelez la fonction de support depuis main_test.go :** Importez le package de support dans main_test.go et appelez la fonction qui utilise la fonction privée de pkg1`.

Cette solution :

  • Maintient le code de test uniquement séparé du code de production.
  • Garantit que la fonction interne de pkg1 reste privé.
  • Évite les problèmes de distribution binaire.

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