Rumah >pembangunan bahagian belakang >Golang >Ujian dan amalan pemisahan kod di Golang
Pengujian dan amalan pemisahan kod di Golang
Pengenalan
Dalam pembangunan perisian, ujian ialah pautan utama untuk memastikan kualiti kod dan ketepatan fungsian. Di Golang, melalui amalan ujian yang baik, kami boleh membantu pembangun mencari dan membetulkan pepijat dengan cepat serta meningkatkan kebolehselenggaraan dan kebolehskalaan kod. Artikel ini akan memperkenalkan ujian dan amalan pemisahan kod di Golang dan memberikan pembaca beberapa contoh kod praktikal.
Pengasingan kod dan ujian
Di Golang, kami biasanya menyimpan kod dan fail ujian secara berasingan untuk memastikan struktur projek jelas dan mengikut prinsip tanggungjawab tunggal. Sebagai contoh, kita boleh menyimpan fail kod dalam fail bernama "main.go" dan fail ujian dalam fail bernama "main_test.go". Pemisahan ini bukan sahaja memudahkan penyelenggaraan dan pengurusan, tetapi juga membantu meningkatkan kebolehbacaan kod.
Berikut ialah contoh mudah yang menunjukkan amalan pengasingan kod dan ujian:
main.go:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
main_test.go:
package main import ( "testing" "bytes" "os" ) func TestMain(m *testing.M) { // Setup os.Stdout = new(bytes.Buffer) // Run tests exitCode := m.Run() // Teardown os.Stdout = os.Stdout // Restore stdout // Exit with the status code from tests os.Exit(exitCode) } func TestMainFunction(t *testing.T) { main() expected := "Hello, World! " actual := os.Stdout.(*bytes.Buffer).String() if actual != expected { t.Errorf("Expected output '%s', but got '%s'", expected, actual) } }
Dalam contoh di atas, logik kod utama disimpan dalam " main.go" fail , dan kod ujian disimpan dalam fail "main_test.go". Antaranya, "TestMainFunction" ialah kes ujian mudah yang digunakan untuk menguji fungsi "utama". Pemisahan ini memudahkan kami menjalankan ujian secara bebas tanpa menjejaskan perjalanan kod utama.
Statistik dan analisis liputan ujian
Di Golang, kami boleh menggunakan alat "penutup" terbina dalam untuk mengira liputan ujian kami. Alat ini boleh membantu kami menemui bahagian kod yang tidak diliputi oleh ujian dan membimbing kami untuk menjalankan ujian yang lebih komprehensif.
Anda boleh menjalankan ujian dan menjana laporan liputan melalui arahan berikut:
go test -coverprofile=coverage.out
Kemudian, kita boleh menggunakan arahan "go tool cover" untuk melihat laporan liputan:
go tool cover -html=coverage.out
Arahan ini akan menghasilkan laporan HTML yang menunjukkan status liputan Ujian projek.
Penanda aras
Selain ujian kefungsian, Golang juga menyediakan kefungsian penanda aras untuk menilai dan membandingkan perbezaan prestasi antara pelaksanaan yang berbeza. Penanda aras boleh membantu kami mengenal pasti kesesakan prestasi dalam kod kami dan mengoptimumkannya.
Berikut ialah contoh penandaarasan mudah:
package main import ( "testing" "math/rand" ) func BenchmarkSum(b *testing.B) { for i := 0; i < b.N; i++ { numbers := generateRandomSlice(100000) sum := sum(numbers) _ = sum } } func generateRandomSlice(size int) []int { numbers := make([]int, size) for i := range numbers { numbers[i] = rand.Intn(100) } return numbers } func sum(numbers []int) int { result := 0 for _, num := range numbers { result += num } return result }
Dalam contoh di atas, fungsi "BenchmarkSum" digunakan untuk menanda aras fungsi "sum". Dalam gelung, kami menjana sekeping 100,000 nombor rawak dan menjumlahkannya.
Untuk menjalankan penanda aras, anda boleh menggunakan arahan berikut:
go test -bench=.
Golang akan menjalankan penanda aras dan mengeluarkan hasilnya.
Ringkasan
Melalui pengenalan kepada amalan ujian dan pemisahan kod di Golang, kita dapat melihat bahawa amalan ujian yang baik adalah penting dalam memastikan kualiti kod dan ketepatan fungsi. Dengan mengasingkan kod dan fail ujian, kami boleh mengatur dan mengurus kod dengan lebih baik, meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Selain itu, menggunakan statistik liputan ujian dan keupayaan penanda aras, kami boleh menilai secara lebih komprehensif kualiti dan prestasi kod dan mengoptimumkan dengan sewajarnya.
Saya harap artikel ini akan membantu pembaca memahami amalan ujian dan pemisahan kod di Golang. Melalui amalan ujian yang baik, kami dapat menulis kod berkualiti tinggi, boleh diselenggara dan berskala, dengan itu meningkatkan kecekapan dan kualiti pembangunan perisian.
Atas ialah kandungan terperinci Ujian dan amalan pemisahan kod di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!