"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment tester les itinéraires Go-Chi avec des variables de chemin ?

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

Publié le 2024-11-02
Parcourir:363

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 :

// 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))

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

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)
}
// Middleware usage in test
handler := URLParamHandler{Next: ArticleCtx(GetArticleID)}
handler.ServeHTTP(rec, req)

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 les routes avec des variables de chemin dans go-chi, il faut 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3