Maison > développement back-end > Golang > le corps du texte

Comment tester les routes Chi avec des variables de chemin dans Go ?

DDD
Libérer: 2024-10-28 14:06:02
original
879 Les gens l'ont consulté

How to Test Chi Routes with Path Variables in Go?

Test des routes Chi avec des variables de chemin

Dans Go, la bibliothèque github.com/go-chi/chi fournit des outils pour créer des routeurs HTTP efficaces. Lors du test de ces routes, il est crucial de s'assurer qu'elles peuvent gérer correctement les variables de chemin.

Comprendre le problème

Alors que chi fournit un middleware ArticleCtx qui injecte des variables de chemin dans la requête contexte, ce middleware ne semble pas fonctionner avec net/http/httptest. Cela entraîne l'erreur « Erreur HTTP : entité non traitable » lors de l'exécution des tests, car le gestionnaire GetArticleID n'a pas accès à la valeur de la variable de chemin.

Solution : ajouter manuellement des variables de chemin

Pour surmonter ce problème, nous devons ajouter manuellement la variable path au contexte de la requête avant de tester le gestionnaire. Ceci peut être réalisé en utilisant le code suivant :

<code class="go">w := httptest.NewRecorder()
r := httptest.NewRequest("GET", "/articles/1", nil)

rctx := chi.NewRouteContext()
rctx.URLParams.Add("articleID", "1")

r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, rctx))

ArticleCtx(http.HandlerFunc(GetArticleID)).ServeHTTP(w, r)</code>
Copier après la connexion

Conseils supplémentaires

  • Assurez-vous que vos gestionnaires gèrent correctement les variables de chemin et les convertissent au type approprié. (par exemple, Atoi pour les variables entières).
  • Utilisez des noms de tests descriptifs et incluez les valeurs attendues pour rendre les résultats des tests faciles à comprendre.
  • Envisagez d'utiliser un cadre de test comme testify pour des tests plus robustes et plus expressifs. .

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!