Chi-Routen mit Pfadvariablen testen
In Go bietet die Bibliothek github.com/go-chi/chi Tools zum Erstellen flexibler und effiziente HTTP-Router. Beim Testen dieser Routen ist es wichtig sicherzustellen, dass sie Pfadvariablen korrekt verarbeiten können.
Das Problem verstehen
Während chi eine ArticleCtx-Middleware bereitstellt, die Pfadvariablen in die Anfrage einfügt Kontext scheint diese Middleware nicht mit net/http/httptest zu funktionieren. Dies führt beim Ausführen von Tests zum Fehler „HTTP-Fehler: Nicht verarbeitbare Entität“, da der GetArticleID-Handler keinen Zugriff auf den Pfadvariablenwert hat.
Lösung: Pfadvariablen manuell hinzufügen
Um dieses Problem zu lösen, müssen wir die Pfadvariable manuell zum Anforderungskontext hinzufügen, bevor wir den Handler testen. Dies kann mit dem folgenden Code erreicht werden:
<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>
Zusätzliche Tipps
Das obige ist der detaillierte Inhalt vonWie teste ich Chi-Routen mit Pfadvariablen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!