Testing (Test Etme)
Hücrelerin vücumudaki yapı birimi olduğu gibi, aynı şekilde her bileşen de yazılımın birer parçasıdır. Yazılımın sağlıklı bir şekilde çalışabilmesi için, her bileşenin güvenilir bir şekilde çalışması gerekir. Aynı şekilde vücudumuzun sağlığı hücrelerin güvenilirliği ve verimliliğine bağlı olduğu gibi, yazılımın düzgün çalışması bileşenlerin güvenilirliği ve verimliliğine bağlıdır. Biraz biyoloji dersi gibi oldu ama sonuçta aynı mantığı yürütebiliriz.
Peki bileşenler nedir? Yazılımın çalışması için yazılmış her bir kod parçasına denir. Bu bileşenlerin yazılımımızın sağlıklı bir şekilde çalıştırdığından emin olmamız gerekir. Peki bu bileşenlerin sağlamlık kontrolünü nasıl gerçekleştiririz? Tabiki test ederek. Bir test aşamsının Golang’ta nasıl göründüğünü görelim.
Yukarıdaki işlem Golang’ta yapılan bir birim testin temel yapısıdır. Yerleşik testing paketi, Golang’ın standart paketleri içerisinde gelir. Birim testi, *testing.T türündeki elemanı kabul eden ve bu elemanı göre hata yayınlayan bir bir işlemdir.
Bu fonksiyonların adı büyük harfle başlamalı ve birleşik olan adın devamı da büyük harfle başlamalıdır. Yani camel-case olmalıdır.
TestFunc olmalıdır ve Testfunc olmamalıdır.
Uygulama örneğimize geçelim.
Bir proje klasörü oluşturalım ve main.go dosyamız şöyle olsun.
main.go dosyamızda fonksiyona adını girdiğimiz kişiyi selamlıyor. Buraya kadar gayet basit bir program. Fonksiyonlarımızı test edeceğimiz için baş harflerini büyük yazmayı unutmuyoruz. Böylelikle fonksiyonlarımızı dışarı aktarabiliriz. Test fonksiyonumuzun çalışma mantığını görmek için main_test.go dosyamıza bakalım.
Yukarıda ise main.go sayfamızdaki Merhaba fonksiyonunu test etmek için TestMerhaba adında fonksiyon oluşturduk. t *testing.T ibaresi ile bu işlemin test etmeye yönelik bir işlem olduğunu belirttik. Fonksiyonun içerisine baktığımızda, Merhaba(“Kaan”) işleminin sonucu “Merhaba Kaan” olmadığı zaman test hatası vermesini istedik. Ve gözükecek hatayı belirttik. Test işlemi yapmak için aşağıdaki komutları komut satırına yazıyoruz.
go test
Yukarıdaki yazdığımız kodlara göre şöyle bir çıktımızın olması gerekir.
PASS ok _/home/ksc10/Desktop/deneme 0.002s
Eğer TestMerhaba fonksiyonunda test koşuluna “Merhaba Kaan” yerine “Merhaba Ahmet” yazsaydık, aşağıdaki gibi bir go test çıktımız olurdu.
--- FAIL: TestMerhaba (0.00s) main_test.go:7: Merhaba Fonksiyonunda bir sıkıntı var! FAIL exit status 1 FAIL _/home/ksc10/Desktop/deneme 0.002s
Go Test Komutları
Örnek kullanımı: main_test.go dosyamızdaki TestMerhaba fonksiyonumuzu 10 saniye zaman aşımı ile test edecek komut
go test -timeout 30s -run TestMerhaba
Bu yazımızda Golang’de test işleminin nasıl yapıldığını gördük. Mantığını daha iyi kavramak için bir proje üzerinde gerekli olduğu yerde kullanmamız gerekir.
Last updated