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

Comment tester les itinéraires Go-Chi avec des variables de chemin ?

Barbara Streisand
Libérer: 2024-10-27 12:14:30
original
291 Les gens l'ont consulté

How to Test Go-Chi Routes with Path Variables?

Test des itinéraires Chi avec des variables de chemin

En go-chi, tester des itinéraires avec des variables de chemin peut initialement poser des défis. Cependant, en employant des techniques appropriées, vous pouvez écrire efficacement des tests fiables.

Le problème vient du fait que les valeurs des paramètres de chemin ne sont pas automatiquement renseignées dans le contexte de la requête lors de l'utilisation de httptest.NewRequest. Cela nécessite l'ajout manuel de ces paramètres.

Une approche consiste à créer un nouveau contexte de requête et à définir manuellement les paramètres d'URL :

<code class="go">// Request & new request context creation
req := httptest.NewRequest("GET", "/articles/123", nil)
reqCtx := chi.NewRouteContext()
reqCtx.URLParams.Add("articleID", "123")

// Setting custom request context with Route Context Key
rctxKey := chi.RouteCtxKey
req = req.WithContext(context.WithValue(req.Context(), rctxKey, reqCtx))</code>
Copier après la connexion

Alternativement, il est possible d'utiliser un http.Handler personnalisé qui ajoute automatiquement les valeurs des paramètres de chemin :

<code class="go">type URLParamHandler struct {
    Next http.Handler
}

func (h URLParamHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    rctx := chi.NewRouteContext()
    for key, val := range r.URL.Query() {
        rctx.URLParams.Add(key, val[0])
    }

    r = r.WithContext(context.WithValue(r.Context(), chi.RouteCtxKey, rctx))
    h.Next.ServeHTTP(w, r)
}</code>
Copier après la connexion
<code class="go">// Middleware usage in test
handler := URLParamHandler{Next: ArticleCtx(GetArticleID)}
handler.ServeHTTP(rec, req)</code>
Copier après la connexion

N'oubliez pas d'utiliser le gestionnaire approprié pendant les tests, en vous assurant que le middleware ArticleCtx et le gestionnaire lui-même sont appelés.

En résumé, tester des itinéraires avec des variables de chemin dans go-chi nécessite de veiller à remplir le contexte de la demande avec les paramètres d'URL appropriés. L'utilisation de ces techniques vous permettra de rédiger des tests précis et efficaces.

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
Derniers articles par auteur
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!