Statistik Liputan untuk Ujian Luaran
Dalam Go, adalah disyorkan untuk menyimpan ujian dalam pakej yang sama seperti kod yang sedang diuji. Walau bagaimanapun, jika pangkalan kod anda terdiri daripada banyak fail ujian, anda mungkin lebih suka organisasi yang lebih bersih dengan mengasingkan ujian ini ke dalam pakej yang berbeza. Pendekatan ini mengehadkan ujian untuk mengakses API awam pakej, mempromosikan organisasi dan enkapsulasi yang lebih baik.
Memandangkan struktur berikut:
api_client: Client.go ArtistService.go api_client_tests: ArtistService.Events_test.go ArtistService.Info_test.go UtilityFunction.go
Menjalankan ujian go bandsintown-api/api_client_tests -cover reports 100% perlindungan, tetapi perlindungan ini hanya berkaitan dengan UtilityFunction.go.
Penyelesaian:
Untuk mendapatkan statistik perlindungan bagi pakej api_client yang sedang diuji tanpa menggabungkan pakej:
go test -cover -coverpkg "api_client" "api_client_tests"
Walau bagaimanapun, perlu diperhatikan bahawa pemisahan kod dan fail ujian ke dalam direktori berbeza bercanggah dengan konvensyen Go. Jika ujian kotak hitam dikehendaki, di mana tiada apa-apa di luar pakej boleh diakses, pertimbangkan untuk mengalihkan ujian ke pakej baharu tanpa menyusun semula fail:
api_client.go:
<code class="go">package api_client // Only accessible within the package var privateVar = 10 func Method() {}</code>
api_client_test.go:
<code class="go">package api_client_tests import "testing" func TestClient(t *testing.T) { Method() // Still accessible from another package }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Statistik Liputan Tepat untuk Ujian Luar dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!