Liputan Ujian dan testify
go test -cover dan pustaka penegasan testify
Liputan Ujian dan testify ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
go test -cover
Tambahkan -cover pada mana-mana perintah go test untuk mencetak peratus liputan bagi setiap pakej.
go test -cover ./...
// ok myapp 68.4% of statementsFail profil liputan
Jana fail profil liputan dan lihatnya sebagai HTML untuk mengetahui baris yang diliputi:
go test -coverprofile=c.out ./...
go tool cover -html=c.out -o coverage.htmlAmbang liputan dalam CI
Paksa liputan minimum dengan satu baris perintah shell:
pct=$(go test -cover ./... | awk '/coverage/ {gsub(/%/,""); print $NF}')
[ "${pct%.*}" -ge 80 ] || { echo "Coverage $pct% below 80%"; exit 1; }Liputan 100% bukan matlamat
Liputan mengukur baris yang dijalankan, bukan sama ada penegasan itu bermakna. Sasarkan liputan tinggi pada laluan kritikal; terima liputan lebih rendah pada cabang ralat yang tidak boleh dicapai.
testify/assert
github.com/stretchr/testify/assert menyediakan penegasan yang mudah dibaca dan melaporkan nilai dijangka serta nilai sebenar secara automatik:
assert.Equal(t, 42, result)
assert.NoError(t, err)
assert.Contains(t, list, "item")
assert.True(t, isValid)testify/require
require serupa dengan assert tetapi memanggil t.FailNow() apabila berlaku kegagalan, lalu menghentikan ujian dengan serta-merta (seperti t.Fatal).
require.NoError(t, err) // stop if err != nil
// Subsequent code only runs if err is niltestify/suite
testify/suite mengumpulkan ujian berkaitan dalam struktur dengan persediaan dan pembersihan dikongsi, serupa dengan rangkaian ujian xUnit:
type UserSuite struct { suite.Suite; db *DB }
func (s *UserSuite) SetupTest() { s.db = openTestDB() }
func (s *UserSuite) TestCreate() { /* ... */ }
func TestUserSuite(t *testing.T) { suite.Run(t, new(UserSuite)) }assert.ElementsMatch
Bandingkan hirisan tanpa mengambil kira susunan:
assert.ElementsMatch(t, []int{3,1,2}, []int{1,2,3})assert.JSONEq
Bandingkan rentetan JSON tanpa mengira susunan kunci:
assert.JSONEq(t, `{"a":1,"b":2}`, `{"b":2,"a":1}`)Pengesahan tersuai
Balut testify dalam pembantu pengesahan anda sendiri untuk menambahkan konteks domain pada mesej kegagalan:
func assertUserValid(t testing.TB, u *User) {
t.Helper()
assert.NotEmpty(t, u.Name)
assert.Positive(t, u.ID)
}Menggabungkan liputan dengan testify
testify tidak mempengaruhi pelaporan liputan — liputan hanya mengambil kira sama ada baris dilaksanakan, tanpa mengira pustaka pengesahan yang digunakan.
Semakan Pantas
Apakah perbezaan antara testify/assert dengan testify/require?
Ringkasan: Liputan dan testify
Perkara utama:
- go test -cover; -coverprofile untuk laporan HTML
- assert: teruskan selepas kegagalan; require: berhenti selepas kegagalan
- testify/suite untuk ujian berkumpulan dengan persediaan dikongsi
- Liputan tinggi adalah baik; pengesahan yang bermakna adalah lebih baik
Pelajari Go dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Liputan Ujian dan testify” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Liputan Ujian dan testify”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Liputan Ujian dan testify”?
go test -cover dan pustaka penegasan testify Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Go Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Liputan Ujian dan testify” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menulis Ujian Unit dengan testing
- Ujian Dipacu Jadual
- Pendua Ujian: Mock dan Stub
- Liputan Ujian dan testify