Maison > Article > développement back-end > Comment pouvons-nous tester les fonctions Go dépendant de constantes ?
Redéfinir les constantes dans Go pour les tests
Aperçu du problème :
Dans Go, les constantes fournissent des valeurs immuables qui ne peut être modifié après déclaration. Cependant, lors du test d'un code qui repose sur ces constantes, il devient difficile d'injecter différentes valeurs à des fins de test.
Solution proposée :
Une solution potentielle réside dans la refactorisation du code pour inclure une deuxième fonction qui prend l'URL de base comme paramètre et appelle la fonction d'origine avec la valeur constante comme argument.
Implémentation Détails :
Introduire une fonction d'assistance :
Remplacer la constante baseUrl_ par une fonction qui accepte le URL de base en tant que argument :
<code class="go">func myFuncImpl(baseUrl string) string { // Use `baseUrl` in the function }</code>
Modifier la fonction d'origine :
Avoir la fonction d'origine (MyFunc()) appelle l'assistant fonction :
<code class="go">func MyFunc() string { return myFuncImpl(baseUrl_) }</code>
Préserver la constante :
Avantages :
Exemple :
<code class="go">const baseUrl_ = "http://google.com" func MyFunc() string { return myFuncImpl(baseUrl_) }</code>
Dans le code de test, myFuncImpl() peut être appelé directement et attribuer des valeurs personnalisées pour URL de base :
<code class="go">func TestMyFunc(t *testing.T) { result := myFuncImpl("http://example.org") // Assertions and tests }</code>
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!