Kod Ujian Boleh Digunakan Semula dalam Pakej Diimport
Dalam senario yang disediakan, anda mempunyai fail ujian (main_test.go) yang memerlukan akses kepada fungsi ujian sahaja dalam pakej lain (pkg1_test.go). Ini menimbulkan cabaran untuk menggunakan semula kod ujian merentas pakej yang diimport.
Penyelesaian Kemungkinan dan Kelemahannya:
-
Alihkan fungsi ke pkg1.go: Ini menjadikan fungsi tersedia untuk main_test.go tetapi ia mungkin menjadi sebahagian daripada binari, yang tidak diingini.
-
Gunakan pakej testutility yang berasingan: Walaupun ini membolehkan anda mengumpulkan ujian- hanya berfungsi, ia memperkenalkan pergantungan pada kaedah dalaman dalam pkg1, mewujudkan masalah yang berpotensi.
Penyelesaian Disyorkan:
Daripada menggunakan salah satu daripada kaedah di atas, pertimbangkan pendekatan berikut:
-
Buat pakej sokongan: Alihkan fungsi ujian sahaja ke pakej baharu, dipanggil sokongan. Pakej ini harus bergantung hanya pada antara muka awam pkg1.
-
Gunakan fail sokongan: Dalam sokongan, tentukan fail sokongan yang mengandungi output fungsi peribadi daripada pkg1.
-
Muatkan fail sokongan dalam fungsi sokongan: Dalam pakej sokongan, cipta fungsi yang memuatkan fail sokongan dan melaksanakan operasi yang diperlukan.
- **Panggil fungsi sokongan daripada main_test.go: ** Import pakej sokongan dalam main_test.go dan panggil fungsi yang menggunakan fungsi peribadi daripada pkg1`.
Penyelesaian ini:
- Menyimpan kod ujian sahaja berasingan daripada kod pengeluaran.
- Memastikan fungsi dalaman daripada pkg1 kekal peribadi.
- Mengelakkan isu dengan pengedaran binari.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan semula kod ujian dalam pakej yang diimport sambil mengekalkan fungsi dalaman secara peribadi?. 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