Wie teste ich Chi-Routen mit Pfadvariablen in Go?

DDD
Freigeben: 2024-10-28 14:06:02
Original
879 Leute haben es durchsucht

How to Test Chi Routes with Path Variables in Go?

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

Zusätzliche Tipps

  • Stellen Sie sicher, dass Ihre Handler Pfadvariablen korrekt verarbeiten und in den entsprechenden Typ konvertieren (z. B. Atoi für ganzzahlige Variablen).
  • Verwenden Sie beschreibende Testnamen und schließen Sie erwartete Werte ein, um die Testergebnisse leicht verständlich zu machen.
  • Erwägen Sie die Verwendung eines Testframeworks wie testify für robustere und aussagekräftigere Tests .

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!

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
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!