„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie teste ich Go-Chi-Routen mit Pfadvariablen?

Wie teste ich Go-Chi-Routen mit Pfadvariablen?

Veröffentlicht am 02.11.2024
Durchsuche:731

How to Test Go-Chi Routes with Path Variables?

Testen von Chi-Routen mit Pfadvariablen

Im Go-Chi kann das Testen von Routen mit Pfadvariablen zunächst eine Herausforderung darstellen. Durch den Einsatz geeigneter Techniken können Sie jedoch effektiv zuverlässige Tests schreiben.

Das Problem ergibt sich aus der Tatsache, dass Pfadparameterwerte nicht automatisch in den Anforderungskontext eingefügt werden, wenn httptest.NewRequest verwendet wird. Dies erfordert das manuelle Hinzufügen dieser Parameter.

Ein Ansatz besteht darin, einen neuen Anforderungskontext zu erstellen und die URL-Parameter manuell festzulegen:

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

Alternativ ist es möglich, einen benutzerdefinierten http.Handler zu verwenden, der die Pfadparameterwerte automatisch hinzufügt:

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)

Denken Sie daran, beim Testen den entsprechenden Handler zu verwenden und sicherzustellen, dass sowohl die ArticleCtx-Middleware als auch der Handler selbst aufgerufen werden.

Zusammenfassend: Testen von Routen mit Pfadvariablen In Go-Chi muss darauf geachtet werden, den Anforderungskontext mit geeigneten URL-Parametern zu füllen. Durch den Einsatz dieser Techniken können Sie genaue und effektive Tests schreiben.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3