Amalan ujian dan liputan adalah penting dalam aplikasi Go, termasuk melaksanakan ujian unit, menggunakan olok-olok dan stub, menyediakan penegasan dan menggunakan berbilang alatan liputan. Dengan mengikuti amalan terbaik dan menyepadukannya ke dalam saluran paip penyepaduan berterusan anda, anda boleh meningkatkan kualiti, kestabilan dan liputan kod.
Pembangunan, ujian dan liputan aplikasi In Go adalah penting untuk memastikan kualiti dan kestabilan kod. Artikel ini akan memperkenalkan amalan terbaik untuk ujian dan liputan dalam rangka kerja Go dan memberikan contoh praktikal.
Bahasa Go menyediakan rangka kerja ujian terbina dalam untuk menulis dan menjalankan kes ujian dengan mudah. Anda boleh menggunakan pakej testing
untuk menulis fungsi ujian dan perintah go test
untuk menjalankan ujian. testing
包来编写测试函数,并使用 go test
命令运行测试。
示例
import "testing" func TestSum(t *testing.T) { if sum(2, 3) != 5 { t.Error("Sum(2, 3) should be 5") } } func sum(a, b int) int { return a + b }
代码覆盖率衡量了测试用例执行代码库的程度。在 Go 中,您可以使用 go test -cover
命令来生成覆盖率报告。它将显示未覆盖的代码行以及覆盖率百分比。
示例
go test -cover
1. 编写单元测试
单元测试专注于测试单个函数或方法。这有助于隔离和测试代码的特定部分。
2. 使用 mocks 和 stubs
mocks 和 stubs 可以模拟外部依赖项,从而使测试更加独立。这可以减少测试中的耦合,并使测试维护更容易。
3. 设置断言
断言检查测试结果的预期值。使用清晰且有意义的断言消息,以帮助调试失败的测试。
4. 使用多个覆盖率工具
go test -cover
提供基本覆盖率信息。可以使用其他工具,如 gcov
或 goveralls
Contoh
import "math" func SquareSum(a, b float64) float64 { return math.Pow(a, 2) + math.Pow(b, 2) }
go test -cover
untuk menjana laporan liputan. Ia akan menunjukkan baris kod yang tidak dilindungi dan peratusan liputan. Contoh
import ( "testing" "math" ) func TestSquareSum(t *testing.T) { tests := []struct { a, b float64 want float64 }{ {2, 3, 13}, {0, 5, 25}, } for _, test := range tests { got := SquareSum(test.a, test.b) if !math.ApproxEqual(got, test.want) { t.Errorf("SquareSum(%f, %f) = %f, want %f", test.a, test.b, got, test.want) } } }
1. Ujian Unit Penulisan
Ujian unit tertumpu kepada menguji satu fungsi atau kaedah. Ini membantu mengasingkan dan menguji bahagian tertentu kod. 🎜🎜🎜2. Gunakan olok-olok dan rintisan🎜🎜🎜Olok-olok dan rintisan boleh mengejek kebergantungan luar, menjadikan ujian lebih bebas. Ini mengurangkan gandingan dalam ujian dan menjadikan penyelenggaraan ujian lebih mudah. 🎜🎜🎜3. Tetapkan penegasan 🎜🎜🎜Penegasan menyemak nilai jangkaan keputusan ujian. Gunakan mesej penegasan yang jelas dan bermakna untuk membantu nyahpepijat ujian yang gagal. 🎜🎜🎜4. Gunakan berbilang alatan liputan 🎜🎜🎜go test -cover
menyediakan maklumat liputan asas. Anda boleh menggunakan alatan lain, seperti gcov
atau governance
, untuk mendapatkan laporan yang lebih terperinci. 🎜🎜🎜5. Integrasi Berterusan 🎜🎜🎜Sepadukan pemeriksaan dan pemeriksaan liputan ke dalam saluran paip integrasi berterusan (CI). Ini akan memastikan ralat ditangkap dan meningkatkan liputan sebelum kod dibina dan dikeluarkan. 🎜🎜 Kes Praktikal 🎜🎜 Pertimbangkan contoh berikut, yang mengira jumlah kuasa dua dua nombor: 🎜go test -cover
ok example.com/square 0.001s coverage: 100.0%
Atas ialah kandungan terperinci ujian rangka kerja golang dan amalan liputan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!