Golang'da Birim Testi Nasıl Yazılır?

Golang Da Birim Testi Nasil Yazilir



Bir Go geliştiricisiyseniz, kodunuzun kalitesinden emin olmak için testin ne kadar önemli olduğunu bilirsiniz. yazı birim testleri geliştirme sürecinin önemli bir parçasıdır ve hataları erkenden yakalamanıza yardımcı olarak uzun vadede zamandan ve paradan tasarruf etmenizi sağlar. Bu yazıda nasıl yazılacağını tartışacağız. birim testleri Golang'da.

Birim Testi nedir?

İlk adım, ne olduğunu anlamaktır. birim testi araç. Birim testi her birinin beklendiği gibi çalışmasını sağlamak için küçük kod birimlerini veya modüllerini test etme sürecini ifade eder. Birim testi koddaki sorunları gidermek, kod kararlılığını artırmak ve kodu güncellerken doğruluğu sağlamak için kullanılır. Yazılım testinin ilk aşaması, ünite testi , ardından UI testi ve entegrasyon testi gelir.

Test Paketi

Golang'da, birim testi adlı bir paket kullanılarak gerçekleştirilir. test yapmak . Paket, kodumuzu test etmemizi sağlayan çeşitli işlevler sağlar. Go kodu, test paketinin yardımıyla otomatik olarak test edilebilir.







Test Edilecek Örnek Program

Herhangi bir şey yazmadan önce testlerimizin analiz etmesi için bazı kodlara ihtiyacımız var. birim testleri . İki sayı toplayan küçük bir program oluşturacağız.



ana paket

içe aktarmak (
'fmt'
)
funcEkle ( A int , B int ) int {
geri dönmek A + B
}

ana işlev ( ) {
fmt. Yazdır ( Eklemek ( 2 , 3 ) )
}

Yukarıdaki kod, Eklemek() iki sayı toplayan fonksiyon, A Ve B , girdi olarak ve sonucu bir tamsayı olarak verir. Ana işlevin sonucu yazdırmadan önce yaptığı tek şey 2 ve 3 sayılarını eklemektir.







Hareket Halinde Birim Testleri Yazma Kuralı

Her Go projesi, o proje için tüm testleri içeren ayrı bir test dosyasına sahip olmalıdır. Dosya, test edilen dosya ile aynı ada sahip olmalı ve _test.go dosya adının sonuna eklenir. Örneğin, adlı bir dosyayı test etmek istiyorsak hesap makinesi.go , test dosyamızı adlandırmalıyız hesap makinesi_testi.go .

için standart bir uygulamadır. Dosyaları test etmeye git değerlendirdikleri kodla aynı pakette veya dizinde bulunmalıdır. go build komutunu kullandığınızda, derleyici bu dosyaları oluşturmaz, bu nedenle dağıtımlarda görünmeleri konusunda endişelenmenize gerek yoktur.



yazmak için ünite testi Go'da, kullanmamız gerekiyor test yapmak paket. Her test fonksiyonunu şu kelime ile başlatabiliriz: Ölçek ve ardından test etmek istediğimiz şeyin bir açıklamasını ekleyin. Örneğin, Test Ekleme veya Test Çıkarma . Ardından, test ettiğimiz işlevin beklenen sonuçları verip vermediğini kontrol eden test kodunu yazabiliriz.

Go'da her test işlevi şu ifadeyle başlamalıdır: t := test.T{}. Bu ifade yeni bir test yapmak testin geçip geçmediğini kontrol etmek için kullanabileceğimiz nesne. daha sonra kullanabiliriz t.Hata() test başarısız olursa bir hata mesajı yazdırma işlevi.

Test Kodu Nasıl Yazılır?

Go'da birim testleri yazmaya gelince, test etmek istediğiniz paketi belirterek başlamak önemlidir. Test paketini içe aktardıktan sonra, paketin dışa aktardığı çeşitli türlere ve yöntemlere erişebilirsiniz. test.T tip. Test mantığının kendisi daha sonra anahtar kelime ile başlayan bir fonksiyona yazılır. 'Ölçek' ardından tanımlayıcı bir ad gelir, örneğin TestEkle() . Bu işlevin içine, test kodunu ve beklenen davranışı doğrulamak için gereken tüm iddiaları dahil edebilirsiniz.

Özetlemek gerekirse, Go'daki bir testin özellikleri aşağıdaki gibidir:

  • Tek ve tek gerekli parametre t *test.T
  • Test işlevi, Test sözcüğüyle başlar ve ardından büyük harfle başlayan bir sözcük veya tümcecik gelir.
  • Bir arızayı belirtmek için, test fonksiyonu aşağıdakilerden birini çağırmalıdır: t.Hata veya t.Başarısız, ve hataya neden olmadan ek hata ayıklama bilgileri sağlamak için t.Log kullanılabilir.
  • Başarısız olmayan hata ayıklama bilgileri sağlamak için t.Log'u kullanın.
  • Testler şu adla dosyalarda saklanır: foo_test.go , Örneğin, matematik_testi.go .

Dosyayı kaydettikten sonra kapatın.

ana paket

içe aktarmak (
'test yapmak'
)

işlevTestEkle ( T * test yapmak. T ) {
sonuç := Eklemek ( 2 , 3 )
eğer sonuç != 5 {
T. Hata ( 'Ekle(2, 3) = %d; 5 iste' , sonuç )
}
}

bu Eklemek() işlevi tarafından test edilir TestEkle() Bu testte tanımlanan fonksiyon. Add'i çağırmak için 2 ve 3 rakamlarını kullanır ve sonucun 5 olduğunu onaylar. Sonuç 5'ten küçükse bir hata mesajı yazdırılır. t.Hata() çağrılır.

Son olarak, Go'nun yerleşik bir test aracı olduğunu bilmek önemlidir. teste git Bu araç, projedeki tüm testleri çalıştırır ve sonuçların bir raporunu sunar. Teste git testleri başlatmak için proje dizinindeyken terminale yazılmalıdır. Sonuç olarak o dizindeki tüm testler çalışacaktır.

< güçlü > teste git < Ölçek - dosya - isim > _Ölçek. Gitmek güçlü >

Birim Testinin Sonuçları

Çıktı size geçen, başarısız olan veya atlanan test fonksiyonlarını gösterecektir.

PASS veya OK kodun amaçlandığı gibi çalıştığını gösterir. alacaksın HATA bir test başarısız olursa.

bu _test.go sonek, go test alt komutunun dosyalarda kontrol ettiği tek sonektir. Daha sonra go test, func gibi herhangi bir özel işlev için bu dosya(lar)ı arar. TestXxx ve diğerleri. Go test, bu işlevleri doğru bir şekilde oluşturur ve çağırır, yürütür, toplar ve sonuçları raporlar ve son olarak her şeyi geçici bir ana pakette temizler.

Son adım, testlerinizi geliştirme iş akışınıza entegre etmektir. En iyi uygulama, kodunuzu bir depoya her yüklediğinizde testlerinizi çalıştırmaktır. Testlerinizin geliştirme iş akışınıza entegrasyonu, kodunuzun sürekli olarak test edilmesini ve sorunların dağıtımdan önce çözülmesini sağlar.

Çözüm

yazı birim testleri yazılım geliştirmenin çok önemli bir bileşenidir çünkü kodunuzun ölçeklenebilir, işlevsel ve etkili olmasını garanti eder. Go test kitaplığının kullanımı zahmetsiz ve kolaydır. Golang yaratabilmelisiniz birim testleri yukarıda listelenen prosedürleri izleyerek en yüksek kalitede. Kodunuzun sürekli olarak test edildiğinden ve dağıtımdan önce tüm sorunların çözüldüğünden emin olmak için testlerinizi geliştirme iş akışınıza entegre etmeyi unutmayın.