Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Kami Boleh Menguji Fungsi Go Bergantung pada Pemalar?

Bagaimanakah Kami Boleh Menguji Fungsi Go Bergantung pada Pemalar?

Susan Sarandon
Lepaskan: 2024-11-01 14:25:29
asal
285 orang telah melayarinya

How Can We Test Go Functions Dependent on Constants?

Mentakrifkan Semula Pemalar dalam Go untuk Pengujian

Garis Isu:
Dalam Go, pemalar memberikan nilai tidak berubah yang tidak boleh diubah selepas pengisytiharan. Walau bagaimanapun, apabila menguji kod yang bergantung pada pemalar ini, ia menjadi mencabar untuk menyuntik nilai yang berbeza untuk tujuan ujian.

Penyelesaian Cadangan:
Penyelesaian yang berpotensi terletak pada pemfaktoran semula kod untuk disertakan fungsi kedua yang mengambil URL asas sebagai parameter dan memanggil fungsi asal dengan nilai malar sebagai argumen.

Butiran Pelaksanaan:

  1. Perkenalkan Fungsi Pembantu:

    • Ganti baseUrl_ tetap dengan fungsi yang menerima URL asas sebagai hujah:

      <code class="go">func myFuncImpl(baseUrl string) string {
        // Use `baseUrl` in the function
      }</code>
      Salin selepas log masuk
  2. Ubah suai Fungsi Asal:

    • Ada fungsi asal (MyFunc()) panggil fungsi pembantu:

      <code class="go">func MyFunc() string {
        return myFuncImpl(baseUrl_)
      }</code>
      Salin selepas log masuk
  3. Kekalkan Pemalar:

    • Kekalkan baseUrl_ tetap sebagai titik rujukan dalam MyFunc( ) fungsi, memastikan bahawa nilai pemalar yang dimaksudkan digunakan dalam kod pengeluaran.

Faedah:

  • Mengekalkan yang asal API dan mengelakkan potensi kelemahan dalam kod pengeluaran.
  • Mendayakan ujian fungsi MyFunc() dengan nilai yang berbeza tanpa mengubah suai pemalar.
  • Ujian boleh mengakses fungsi khusus (myFuncImpl()) yang membenarkan penetapan nilai yang fleksibel semasa ujian.

Contoh:

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

func MyFunc() string {
    return myFuncImpl(baseUrl_)
}</code>
Salin selepas log masuk

Dalam kod ujian, myFuncImpl() boleh dipanggil terus dan diberikan nilai tersuai untuk baseUrl:

<code class="go">func TestMyFunc(t *testing.T) {
    result := myFuncImpl("http://example.org")
    // Assertions and tests
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Menguji Fungsi Go Bergantung pada Pemalar?. 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