Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Mengubah Suai Pemalar dalam Go untuk Ujian Berkesan?
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>
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!