Menguji Laluan Chi dengan Pembolehubah Laluan
Dalam Go, perpustakaan github.com/go-chi/chi menyediakan alatan untuk mencipta yang fleksibel dan penghala HTTP yang cekap. Apabila menguji laluan ini, adalah penting untuk memastikan mereka boleh mengendalikan pembolehubah laluan dengan betul.
Memahami Isu
Sementara chi menyediakan perisian tengah ArticleCtx yang menyuntik pembolehubah laluan ke dalam permintaan konteks, perisian tengah ini nampaknya tidak berfungsi dengan net/http/httptest. Ini mengakibatkan ralat "Ralat HTTP: Entiti Tidak Boleh Diproses" semasa menjalankan ujian, kerana pengendali GetArticleID tidak mempunyai akses kepada nilai pembolehubah laluan.
Penyelesaian: Tambah Pembolehubah Laluan Secara Manual
Untuk mengatasi isu ini, kita perlu menambah pembolehubah laluan secara manual pada konteks permintaan sebelum menguji pengendali. Ini boleh dicapai menggunakan kod berikut:
<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>
Petua Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Menguji Laluan Chi dengan Pembolehubah Laluan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!