Test du code réutilisable dans les packages importés
Lorsque vous travaillez avec plusieurs packages et fichiers de test, il est courant de rencontrer le besoin de réutiliser les fonctions utilitaires de d'un test à l'autre. Considérez la hiérarchie de répertoires suivante :
/<br>|-- main.go // package main, un serveur HTTP qui accepte les requêtes et appelle les API C/U dans pkg1 pour terminer certaines tâches<br>|-- main_test.go // veut appeler veryfyTaskNumber dans pkg1_test<br>|-- pkg1 // package pkg1, API CRUD avec Retrieve&Delete non exportées pour des raisons de sécurité</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">|-- pkg1_test.go // contains a function verifyTaskNumber(*testing.T, taskName string, expectedNo int) which calls internal Retrieve function in pkg1
Dans ce scénario, main_test.go doit accéder à verifyTaskNumber() depuis pkg1_test.go, ce qui pose le défi suivant : Comment le code de test dans les packages importés peut-il être réutilisé efficacement ?
Deux approches courantes sont :
Une solution plus efficace consiste à enregistrer la sortie du package interne. fonction dans le package importé dans un fichier de support. Ce fichier peut ensuite être chargé lorsque la fonction correspondante dans le package utilitaire est appelée.
Par exemple, si pkg1 a une fonction Retrieve() non exportée, vous pouvez créer une fonction dans le package utilitaire qui charge le fichier de support et appelle Retrieve(). En utilisant cette approche, les fonctions du package utilitaire peuvent accéder aux méthodes internes du package importé sans compromettre la modularité ni créer d'artefacts.
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!