Maison >développement back-end >Golang >Comment tester les routes Chi avec des variables de chemin dans 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>
Conseils supplémentaires
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!