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

Patricia Arquette
Lepaskan: 2024-11-04 03:48:29
asal
805 orang telah melayarinya

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

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!