Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Anda Boleh Mentakrifkan Semula Pemalar untuk Tujuan Pengujian dalam Go?

Bagaimanakah Anda Boleh Mentakrifkan Semula Pemalar untuk Tujuan Pengujian dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-01 04:23:28425semak imbas

How Can You Redefine Constants for Testing Purposes in Go?

Menguji Pemalar dalam Go

Dalam Go, pemalar ialah alat yang berharga untuk memastikan ketekalan dan ketepatan kod. Walau bagaimanapun, apabila ia datang kepada ujian unit, menggunakan pemalar boleh mencipta cabaran. Artikel ini meneroka cara mentakrifkan semula pemalar khusus untuk tujuan ujian dalam Go.

Cabaran dengan Pemalar

Pemalar dalam Go ialah nilai tidak berubah yang tidak boleh diubah suai semasa pelaksanaan program. Ketidakbolehubahan ini memastikan integriti keadaan program dan menghalang perubahan yang tidak disengajakan. Walau bagaimanapun, semasa ujian, adalah perlu untuk mengubah suai pemalar buat sementara waktu untuk menguji senario tertentu.

Pendekatan Mesra Pengujian

Pertimbangkan contoh berikut:

<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 // Error: const baseUrl already defined</code>

Dalam contoh ini, kami mahu menggunakan pelayan ujian dan bukannya memanggil API jauh untuk ujian. Untuk melakukan ini, kita perlu mentakrifkan semula baseUrl dengan URL pelayan ujian. Walau bagaimanapun, Go melemparkan ralat kerana baseUrl malar sudah ditakrifkan.

Penyelesaian: Refactor for Testability

Untuk memudahkan ujian, kita boleh memfaktorkan semula kod dengan memperkenalkan fungsi tambahan:

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

func MyFunc() string {
    // Call other function passing the const value
    return myFuncImpl(baseUrl_)
}

func myFuncImpl(baseUrl string) string {
    // use baseUrl
    // Same implementation that was in your original MyFunc() function
}</code>

Dalam kod pemfaktoran semula ini, fungsi MyFunc asal mewakilkan pelaksanaannya kepada myFuncImpl, yang mengambil parameter baseUrl. Ini membolehkan kami memanggil myFuncImpl terus daripada fungsi ujian dan memasukkan mana-mana URL asas yang dikehendaki.

Memastikan Kod Pengeluaran Selamat

Fungsi MyFunc asal kekal selamat dan tidak terjejas oleh pemfaktoran semula. Ia sentiasa menghantar baseUrl_ tetap kepada myFuncImpl, memastikan bahawa kod pengeluaran tidak mempunyai gelagat yang tidak dijangka disebabkan oleh pemalar yang diubah suai.

Kesimpulan

Teknik ini membolehkan pembangun mentakrifkan semula pemalar. untuk tujuan ujian sambil mengekalkan integriti dan keselamatan kod pengeluaran. Dengan memperkenalkan fungsi tambahan yang menyediakan fungsi yang sama seperti yang asal, ujian boleh mengubah suai pemalar tanpa menjejaskan kelakuan kod sebenar.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mentakrifkan Semula Pemalar untuk Tujuan Pengujian dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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