Rumah > pembangunan bahagian belakang > Golang > Bagaimana Anda Boleh Mentakrifkan Semula Pemalar dalam Go for Testing?

Bagaimana Anda Boleh Mentakrifkan Semula Pemalar dalam Go for Testing?

DDD
Lepaskan: 2024-11-02 11:49:02
asal
816 orang telah melayarinya

How Can You Redefine Constants in Go for Testing?

Mentakrifkan Semula Pemalar untuk Pengujian dalam Go

Dalam kod pengeluaran, selalunya wajar untuk menggunakan pemalar untuk nilai yang stabil seperti URL asas. Walau bagaimanapun, ini boleh menimbulkan cabaran semasa ujian, kerana pelaksanaan lalai const dalam Go tidak membenarkan penugasan semula.

Masalah:

Pertimbangkan coretan kod berikut, yang cuba mentakrifkan semula pemalar baseUrl dalam fail ujian:

<code class="go">package main

const baseUrl = "http://google.com"

// in main_test.go
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  ...
 }
const baseUrl = ts.URL // throws error: const baseUrl already defined</code>
Salin selepas log masuk

Kod ini akan gagal dengan const baseUrl ralat yang telah ditakrifkan, kerana Go tidak membenarkan mentakrifkan semula pemalar.

Penyelesaian:

Untuk mendayakan pemalar mesra ujian, pertimbangkan untuk memfaktorkan semula kod anda. Daripada menggunakan pemalar global, buat fungsi yang mengambil nilai pemalar sebagai parameter:

<code class="go">const baseUrl_ = "http://google.com"

func MyFunc(baseUrl string) {
    // Use baseUrl
}</code>
Salin selepas log masuk

Dalam fail ujian, anda boleh mentakrifkan semula parameter baseUrl tanpa menjejaskan kod pengeluaran:

<code class="go">// in main_test.go
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  ...
 }
myFuncImpl(ts.URL) // Call the function with the test URL</code>
Salin selepas log masuk

Pendekatan ini membolehkan anda menguji kod anda dengan nilai pemalar yang berbeza sambil mengekalkan pelaksanaan asal. Fungsi asal MyFunc() masih menggunakan nilai pemalar pengeluaran, memastikan kestabilan untuk senario bukan ujian.

Atas ialah kandungan terperinci Bagaimana Anda Boleh Mentakrifkan Semula Pemalar dalam Go for Testing?. 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