0Pricing
Go Academy · Ders

Test Kapsamı ve testify

go test -cover ve testify doğrulama kitaplığı

Test Kapsamı ve testify, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

go test -cover

Herhangi bir go test komutuna -cover ekleyerek her paket için kapsam yüzdesini yazdırın.

go test -cover ./...
// ok  myapp 68.4% of statements

Kapsam profili

Hangi satırların kapsandığını görmek için bir kapsam profili dosyası oluşturun ve bunu HTML olarak görüntüleyin:

go test -coverprofile=c.out ./...
go tool cover -html=c.out -o coverage.html

CI'da kapsam eşikleri

Bir kabuk komutuyla minimum kapsamı zorunlu kılın:

pct=$(go test -cover ./... | awk '/coverage/ {gsub(/%/,""); print $NF}')
[ "${pct%.*}" -ge 80 ] || { echo "Coverage $pct% below 80%"; exit 1; }

%100 kapsam hedef değildir

Kapsam, doğrulamaların anlamlı olup olmadığını değil, hangi satırların çalıştığını ölçer. Kritik yollarda yüksek kapsamı hedefleyin; erişilemeyen hata dallarında daha düşük kapsamı kabul edin.

testify/assert

github.com/stretchr/testify/assert, beklenen ve gerçek değerleri otomatik olarak bildiren okunabilir doğrulamalar sağlar:

assert.Equal(t, 42, result)
assert.NoError(t, err)
assert.Contains(t, list, "item")
assert.True(t, isValid)

testify/require

require, assert ile aynıdır; ancak başarısızlık durumunda t.FailNow() çağrısı yaparak sınamayı hemen durdurur (t.Fatal gibi).

require.NoError(t, err) // stop if err != nil
// Subsequent code only runs if err is nil

testify/suite

testify/suite, ilişkili sınamaları xUnit sınama paketlerine benzer şekilde, paylaşılan kurulum ve temizleme işlemlerine sahip bir yapıda gruplar:

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

Dilimleri sıralamayı önemsemeden karşılaştırın:

assert.ElementsMatch(t, []int{3,1,2}, []int{1,2,3})

assert.JSONEq

JSON dizelerini anahtarların sırasından bağımsız olarak karşılaştırın:

assert.JSONEq(t, `{"a":1,"b":2}`, `{"b":2,"a":1}`)

Özel doğrulamalar

Başarısızlık iletilerine alan bağlamı eklemek için testify'ı kendi doğrulama yardımcılarınızla sarın:

func assertUserValid(t testing.TB, u *User) {
    t.Helper()
    assert.NotEmpty(t, u.Name)
    assert.Positive(t, u.ID)
}

Kapsamı testify ile birleştirme

testify kapsam raporlamasını etkilemez — kapsam, hangi doğrulama kitaplığının kullanıldığından bağımsız olarak yalnızca satırların yürütülüp yürütülmediğiyle ilgilenir.

Hızlı Kontrol

testify/assert ile testify/require arasındaki fark nedir?

Özet: Kapsam ve testify

Temel noktalar:

  • go test -cover; HTML raporu için -coverprofile
  • assert: başarısızlıkta devam eder; require: başarısızlıkta durur
  • Ortak kurulumla gruplanmış sınamalar için testify/suite
  • Yüksek kapsam iyidir; anlamlı doğrulamalar daha iyidir

Sıkça Sorulan Sorular

“Test Kapsamı ve testify” dersi ücretsiz mi?

Evet — “Test Kapsamı ve testify” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Test Kapsamı ve testify” dersinde ne öğreneceğim?

go test -cover ve testify doğrulama kitaplığı Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Test Kapsamı ve testify” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. testing ile Birim Testleri Yazma
  2. Tablo Tabanlı Testler
  3. Test Çiftleri: Taklitler ve Taslaklar
  4. Test Kapsamı ve testify
← Go Academy Sayfasına Dön