Test yardımcıları
- Go kursu
- Orta seviye
- Ders 44/80
- 4 dk
t.Helper ve t.Cleanup gibi yardımcıları öğrenirsin.
Test yardımcıları
Tekrar eden kontrolleri yardımcı fonksiyonlara taşı ve başına t.Helper() ekle; böylece hata satırı yardımcının içini değil, onu çağıran test satırını gösterir:
func esit(t *testing.T, got, want int) {
t.Helper()
if got != want {
t.Errorf("got %d, want %d", got, want)
}
}Kurulum gerektiren kaynaklar için t.Cleanup(f) test bitince çalışacak temizliği kaydeder; t.TempDir() otomatik silinen geçici klasör verir.
Paralel testler ve TestMain
t.Parallel() çağıran testler aynı paketteki diğer paralel testlerle eşzamanlı çalışır; yavaş G/Ç testlerini hızlandırır. Tüm paket için tek seferlik kurulum gerekiyorsa TestMain(m *testing.M) yazılır:
func TestMain(m *testing.M) {
db := kur()
kod := m.Run()
db.Close()
os.Exit(kod)
}Uygulama Temizlik sırası
t.Cleanup'ın LIFO davranışını defer ile taklit et: calistir() içinde sırayla defer fmt.Println("db kapandı") ve defer fmt.Println("dosya silindi") kaydet, ardından "test" yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func calistir() {
defer fmt.Println("db kapandı")
defer fmt.Println("dosya silindi")
fmt.Println("test")
}
func main() {
calistir()
}Beklenen çıktı
test dosya silindi db kapandı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>t.Cleanup</code> ile kaydedilen fonksiyonlar hangi sırayla çalışır?
- Rastgele
- Paralel
- Son kaydedilen ilk çalışır (LIFO) Doğru cevap
- Kayıt sırasıyla
Açıklama: Cleanup defer gibi davranır; sonradan kurulan kaynak önce kapatılır.
2 Satırı düzelt
func esit(t *testing.T, got, want string) {
t.____()
if got != want { t.Errorf("got %q, want %q", got, want) }
}
func esit(t *testing.T, got, want string) {
t.Helper()
if got != want { t.Errorf("got %q, want %q", got, want) }
}
Açıklama: t.Helper bu fonksiyonu yardımcı olarak işaretler; hata konumu çağıran satırı gösterir.
3 Yardımcı ve görevi
| Kavram | Anlamı |
|---|---|
t.Helper() |
Doğru hata satırı |
t.Cleanup(f) |
Test sonu temizlik |
t.TempDir() |
Geçici klasör |
t.Parallel() |
Eşzamanlı çalıştırma |