Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggunakan Semula Kod Ujian daripada Pakej yang Diimport dalam Go dengan Fungsi Tidak Dieksport?

Bagaimana untuk Menggunakan Semula Kod Ujian daripada Pakej yang Diimport dalam Go dengan Fungsi Tidak Dieksport?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 03:48:29807semak imbas

How to Reuse Test Code from Imported Packages in Go with Unexported Functions?

Menggunakan Semula Kod Ujian dalam Pakej Diimport dalam Go

Dalam struktur direktori anda, anda mempunyai fungsi utiliti ujian dalam pkg1_test.go yang anda inginkan untuk digunakan dalam main_test.go, yang mengimport pkg1. Walau bagaimanapun, fungsi dalam pkg1_test.go menggunakan fungsi yang tidak dieksport dalam pkg1, menjadikannya tidak tersedia di luar pakej.

Pertimbangkan pendekatan berikut:

Mengalih Fungsi ke pkg1.go

Semasa mengalihkan fungsi ke pkg1.go akan menjadikannya boleh diakses dalam main_test.go, ia boleh menyebabkan fungsi dimasukkan dalam binari yang dijana oleh go build. Ini tidak diingini untuk fungsi ujian sahaja.

Mencipta Pakej Utiliti Ujian Berasingan

Mengalih fungsi ke pakej utiliti ujian yang berasingan dan mengimportnya secara manual dalam *_test. pergi fail kelihatan ideal. Walau bagaimanapun, fungsi tersebut masih memerlukan akses kepada kaedah dalaman dalam pkg1, yang mungkin tidak boleh dieksport.

Pendekatan Hibrid

Untuk senario khusus anda, pendekatan hibrid menawarkan penyelesaian:

  1. Alihkan fungsi utiliti ujian daripada pkg1_test.go ke pakej baharu, mari kita panggil testutils.
  2. Import testutils dalam kedua-dua main_test.go dan pkg1_test.go.
  3. Dalam pkg1_test.go, tambahkan fungsi seperti ini:

    <code class="go">func getPrivateData() []byte {
        // Code to get internal data from pkg1
    }</code>
  4. Dalam testutils, muatkan data peribadi daripada getPrivateData dalam pkg1_test.go dan gunakannya untuk melaksanakan yang diperlukan ujian.

Pendekatan ini membolehkan anda menggunakan semula fungsi utiliti ujian anda sambil memastikan ia berasingan daripada kod pengeluaran dan mengelakkan masalah fungsi yang tidak dieksport.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Semula Kod Ujian daripada Pakej yang Diimport dalam Go dengan Fungsi Tidak Dieksport?. 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