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:
Dalam pkg1_test.go, tambahkan fungsi seperti ini:
<code class="go">func getPrivateData() []byte { // Code to get internal data from pkg1 }</code>
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!