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

Bagaimanakah Kami Boleh Menguji Fungsi Go Bergantung pada Pemalar?

Susan Sarandon
Susan Sarandonasal
2024-11-01 14:25:29141semak imbas

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>
  2. Ubah suai Fungsi Asal:

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

      <code class="go">func MyFunc() string {
        return myFuncImpl(baseUrl_)
      }</code>
  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>

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>

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!

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