Bagaimanakah Saya Boleh Mengubah Suai Pemalar dalam Go untuk Ujian Berkesan?

Linda Hamilton
Lepaskan: 2024-11-02 02:10:30
asal
306 orang telah melayarinya

How Can I Modify Constants in Go for Effective Testing?

Mentakrifkan Semula Pemalar dalam Go for Testing

Dalam bidang pengaturcaraan Go, pemalar menawarkan cara yang tidak berubah untuk menyimpan nilai tetap. Walaupun ketegaran ini memastikan kestabilan, ia menimbulkan cabaran semasa ujian apabila seseorang memerlukan fleksibiliti untuk mengubah nilai ini. Pertimbangkan, sebagai contoh, senario di mana anda mempunyai klien HTTP yang mengakses API jauh. Untuk tujuan ujian, anda lebih suka menggunakan pelayan olok-olok daripada membuat panggilan API sebenar.

Pendekatan mudah ialah mengisytiharkan baseUrl sebagai pembolehubah global dan mengubah suai nilainya semasa ujian. Walau bagaimanapun, ini mempunyai potensi kelemahan, kerana ia memperkenalkan risiko perubahan masa jalan yang menjejaskan kod pengeluaran. Untuk mengekalkan integriti kod, anda mungkin mahu mentakrifkan baseUrl sebagai pemalar untuk pengeluaran tetapi mengekalkan keupayaan untuk mengubahnya untuk ujian.

Penyelesaian: Pemfaktoran Semula dengan Parameter

The penyelesaian terletak pada pemfaktoran semula kod sedikit. Daripada menggunakan pemalar dalam fungsi, perkenalkan parameter yang menerima nilai baseUrl yang dikehendaki. Ini membolehkan fungsi asal mengekalkan APInya sambil menyediakan fleksibiliti untuk ujian.

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

Pendekatan ini memastikan API pustaka anda kekal tidak berubah. Walau bagaimanapun, ia kini membolehkan anda menguji kefungsian MyFunc() asal dengan menguji myFuncImpl() dengan nilai baseUrl yang berbeza. MyFunc() itu sendiri kekal tidak terjejas, kerana ia secara konsisten menghantar baseUrl_ tetap kepada myFuncImpl().

Fungsi Ujian yang Dieksport atau Tidak Dieksport

Keputusan sama ada untuk mengeksport atau menyaheksport fungsi myFuncImpl() bergantung pada peletakan kod ujian anda. Jika ia berada dalam pakej yang sama, ia boleh menghubungi terus myFuncImpl() tanpa masalah, tanpa mengira status eksportnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Pemalar dalam Go untuk Ujian Berkesan?. 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
Artikel terbaru oleh pengarang
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!