使用路徑變數測試Chi 路由:故障排除和解決方案
在go-chi 中,路由內的路徑變數存取由中間件函數(如文章Ctx.測試此類路由時,必須在HTTP 請求的上下文中手動設定路徑變數。這是因為httptest 套件不會自動填入上下文。
問題:
要測試使用路徑變數的路由,需要使用httptest.NewRequest 建立測試請求。
解決方案在於手動在將路徑參數傳遞給處理程序之前將路徑參數添加到請求上下文中:
<code class="go">// Create a context with the path variable req := httptest.NewRequest("GET", "/articles/1", nil) rctx := chi.NewRouteContext() rctx.URLParams.Add("articleID", "1") // Set the RouteCtx in the request context req = req.WithContext(context.WithValue(req.Context(), chi.RouteCtxKey, rctx)) // Execute the handler with the modified request rec := httptest.NewRecorder() ArticleCtx(http.HandlerFunc(GetArticleID)).ServeHTTP(rec, req)</code>
以上是如何使用路徑變數測試 Go-Chi 路由:解決無法處理的實體錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!