Wie teste ich Go-Chi-Routen mit Pfadvariablen?

Barbara Streisand
Freigeben: 2024-10-27 12:14:30
Original
291 Leute haben es durchsucht

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:

<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>
Nach dem Login kopieren

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

<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>
Nach dem Login kopieren
<code class="go">// Middleware usage in test
handler := URLParamHandler{Next: ArticleCtx(GetArticleID)}
handler.ServeHTTP(rec, req)</code>
Nach dem Login kopieren

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: Beim 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.

Das obige ist der detaillierte Inhalt vonWie teste ich Go-Chi-Routen mit Pfadvariablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!