0Pricing
Go Academy · Ders

testing ile Birim Testleri Yazma

TestXxx işlevleri, t.Error, t.Fatal ve t.Helper

testing ile Birim Testleri Yazma, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. 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.

testing paketi

Go'nun yerleşik testing paketi, birim sınamaları için gereken her şeyi sağlar: sınama işlevleri, başarısızlık bildirimleri ve sınama ikilileri. Harici bir çatı gerekmez.

Sınama işlevi imzası

Sınama işlevleri Test ile başlamalı, *testing.T almalı ve adı _test.go ile biten dosyalarda bulunmalıdır.

func TestAdd(t *testing.T) {
    got := Add(2, 3)
    if got != 5 {
        t.Errorf("Add(2,3) = %d; want 5", got)
    }
}

t.Error ve t.Fatal karşılaştırması

t.Error başarısızlığı işaretler ve devam eder; t.Fatal başarısızlığı işaretler ve geçerli sınamayı hemen durdurur. Sonraki doğrulamalar başarısız olan doğrulamaya bağlıysa Fatal kullanın.

Sınamaları çalıştırma

Tüm sınamaları çalıştırın: go test ./.... Belirli bir sınamayı çalıştırın: go test -run TestAdd. Ayrıntılı çıktı için -v ekleyin.

go test -v -run TestAdd ./...

t.Helper

Hata iletilerinin yardımcı işlevin satırını değil, çağıranın satırını bildirmesi için doğrulama yardımcılarını t.Helper() ile işaretleyin.

func assertEqual(t *testing.T, got, want int) {
    t.Helper()
    if got != want {
        t.Errorf("got %d; want %d", got, want)
    }
}

TestMain

TestMain(m *testing.M), tüm sınama paketi çalıştırılmadan önce ve çalıştırıldıktan sonra kurulum ve temizleme işlemleri için isteğe bağlı bir giriş noktasıdır (örneğin bir sınama veritabanı başlatmak).

func TestMain(m *testing.M) {
    setup()
    code := m.Run()
    teardown()
    os.Exit(code)
}

t.Run ile alt sınamalar

İlişkili durumları t.Run ile gruplayın. Her alt sınama bağımsız olarak çalışır ve -run TestFoo/SubcaseName ile hedeflenebilir.

func TestMath(t *testing.T) {
    t.Run("addition", func(t *testing.T) { /* ... */ })
    t.Run("subtraction", func(t *testing.T) { /* ... */ })
}

Sınama dosyalarının yapısı

Aynı paketteki sınamalar dışa aktarılmamış tanımlayıcılara erişebilir. Bir _test paketindeki (kara kutu sınamaları) sınamalar yalnızca dışa aktarılmış tanımlayıcılara erişebilir.

// white-box: package mylib
// black-box: package mylib_test

go test -cover

go test -cover ile kod kapsamını ölçün. Ayrıntılı bir HTML raporu için: go test -coverprofile=c.out ./... && go tool cover -html=c.out.

Arayüzlerle sınama

Gerçek hizmetleri başlatmadan sınamalara sahte uygulamalar aktarabilmek için kodu arayüzlere göre tasarlayın.

t.Parallel

Diğer paralel sınamalarla eş zamanlı çalışmasının güvenli olduğunu belirtmek ve sınama paketini hızlandırmak için bir sınamanın başında t.Parallel() çağrısını kullanın.

func TestRead(t *testing.T) {
    t.Parallel()
    // ...
}

Hızlı Kontrol

t.Error ile t.Fatal arasındaki fark nedir?

Özet: testing ile Birim Sınaması

Temel noktalar:

  • Sınama işlevleri: _test.go dosyalarındaki TestXxx(t *testing.T)
  • t.Error devam eder; t.Fatal sınamayı durdurur
  • Yardımcı işlevlerde temiz hata satırı numaraları için t.Helper()
  • Alt sınamalar için t.Run; eş zamanlı sınamalar için t.Parallel

Sıkça Sorulan Sorular

“testing ile Birim Testleri Yazma” dersi ücretsiz mi?

Evet — “testing ile Birim Testleri Yazma” 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.

“testing ile Birim Testleri Yazma” dersinde ne öğreneceğim?

TestXxx işlevleri, t.Error, t.Fatal ve t.Helper 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 1. dersidir.

“testing ile Birim Testleri Yazma” 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