Test fonksiyonu
- Go kursu
- Orta seviye
- Ders 41/80
- 4 dk
func TestXxx imzasını ve go test komutunu öğrenirsin.
Test fonksiyonu
Go'da testler _test.go ile biten dosyalarda yazılır ve go test ile çalışır. Test fonksiyonu Test ile başlar ve *testing.T alır:
// topla_test.go
package hesap
import "testing"
func TestTopla(t *testing.T) {
if got := Topla(2, 3); got != 5 {
t.Errorf("Topla(2, 3) = %d, beklenen 5", got)
}
}Ayrı bir test çerçevesi yoktur; standart testing paketi yeterlidir.
go test bayrakları
Sık kullanılan bayraklar:
go test ./... # tüm paketler
go test -v -run TestTopla # ayrıntılı, adı eşleşen testler
go test -race ./... # veri yarışı denetimi
go test -cover ./... # kapsama oranı
go test -count=1 ./... # önbelleği atlaTestler paketin iç fonksiyonlarına erişebilir; dışarıdan bakmak için package hesap_test kullanılır.
Uygulama Mini test çalıştırıcı
Testin özünü taklit et: Topla(a, b int) int yaz. main içinde got := Topla(2, 3) ve got != 5 ise "FAIL", değilse "PASS" yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func Topla(a, b int) int { return a + b }
func main() {
if got := Topla(2, 3); got != 5 {
fmt.Println("FAIL")
return
}
fmt.Println("PASS")
}Beklenen çıktı
PASS
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>go test</code> hangi fonksiyonu test olarak çalıştırır?
- func TestToplam()
- func TestToplam(t *testing.T) Doğru cevap
- func testToplam(t *testing.T)
- func Testtoplam(t *testing.T)
Açıklama: Ad Test ile başlamalı ve ardından büyük harf (ya da hiç karakter) gelmeli; tek parametre *testing.T olmalıdır.
2 Test dosyası
// topla____.go
package hesap
// topla_test.go
package hesap
Açıklama: go test yalnızca _test.go ile biten dosyalardaki testleri derler ve çalıştırır.
3 Bayrak ve etkisi
| Kavram | Anlamı |
|---|---|
-v |
Ayrıntılı çıktı |
-run |
Ada göre süz |
-race |
Yarış denetimi |
-cover |
Kapsama |