Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh berkongsi fungsi pembantu dengan berkesan merentas fail ujian dalam pakej Go?

Bagaimanakah saya boleh berkongsi fungsi pembantu dengan berkesan merentas fail ujian dalam pakej Go?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 03:23:28978semak imbas

How can I effectively share helper functions across test files in a Go package?

Penempatan Kod Ujian Dikongsi dalam Pakej Go

Dalam pakej Go yang merangkumi berbilang fail sumber, adalah perkara biasa untuk membuat fail ujian berasingan untuk setiap fail sumber. Walau bagaimanapun, jika ujian anda memerlukan fungsi pembantu yang dikongsi, adalah tidak sesuai untuk memasukkan fungsi ini dalam fail sumber pakej atau menduplikasinya dalam setiap fail ujian.

Untuk menangani perkara ini, Go menyediakan pendekatan yang mudah:

Fail Ujian dalam Pakej Ujian Yang Sama:

Fail ujian yang menggunakan klausa pakej yang sama tergolong dalam pakej ujian yang sama. Ini bermakna mereka boleh merujuk kepada pengecam satu sama lain, dieksport dan tidak dieksport, tanpa pernyataan import yang jelas.

Penggunaan:

  1. Pilih mana-mana satu daripada fail ujian .
  2. Buat fungsi bernama, seperti util(), yang mengandungi kod kongsi anda.
  3. Daripada fail ujian lain, hanya panggil fungsi ini dengan namanya.

Contoh:

Pertimbangkan pakej yang dipanggil "a" dengan fail berikut:

a/
    a.go
    b.go
    a_test.go
    b_test.go

Jika a_test.go mengandungi fungsi pembantu util(), maka b_test.go boleh mengaksesnya tanpa sebarang import.

Pertimbangan Tambahan:

  • Anda boleh menggabungkan berbilang fungsi ujian ke dalam satu fail _test.go, tanpa mengira bilangan fail sumber.
  • Ingat, fail ujian berkongsi keterlihatan hanya dalam pakej ujian yang sama. Pakej ujian yang berbeza tidak akan mempunyai akses kepada pengecam satu sama lain.

Atas ialah kandungan terperinci Bagaimanakah saya boleh berkongsi fungsi pembantu dengan berkesan merentas fail ujian dalam pakej Go?. 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