Bagaimana untuk Menguji Laluan Chi dengan Pembolehubah Laluan dalam Go?

DDD
Lepaskan: 2024-10-28 14:06:02
asal
879 orang telah melayarinya

How to Test Chi Routes with Path Variables in Go?

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>
Salin selepas log masuk

Petua Tambahan

  • Pastikan pengendali anda mengendalikan pembolehubah laluan dengan betul dan tukarkannya kepada jenis yang sesuai (cth., Atoi untuk pembolehubah integer).
  • Gunakan nama ujian deskriptif dan sertakan nilai yang dijangkakan untuk menjadikan keputusan ujian mudah difahami.
  • Pertimbangkan untuk menggunakan rangka kerja ujian seperti memberi keterangan untuk ujian yang lebih mantap dan ekspresif .

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!