TestNG - Genel Bakış
Test, gereksinimlere göre çalıştığından emin olmak için bir uygulamanın işlevselliğini kontrol etme sürecidir. Birim testi, nihai ürünün gereksinimleri karşıladığından emin olmak için her bir varlığı (sınıf veya yöntem) test etmek için yeterli önlemlerin alındığı geliştirici düzeyinde ortaya çıkar.
JUnit, geliştiricileri, diğer herhangi bir test çerçevesiyle karşılaştırıldığında, testlerin, özellikle birim testlerin yararlılığını anlamaya teşvik etti. Oldukça basit, pragmatik ve katı bir mimariden yararlanan JUnit, çok sayıda geliştiriciye "bulaştırabildi". Özelliklerini iyi anlamak için JUnit ile ilgili eğitimimize bir göz atın. JUnit'in aynı zamanda aşağıda listelenen bazı eksiklikleri de vardır -
Başlangıçta yalnızca birim testini etkinleştirmek için tasarlanmıştır, şimdi her tür test için kullanılmaktadır.
Bağımlılık testi yapılamaz.
Zayıf konfigürasyon kontrolü (setUp / tearDown).
Müdahaleci (sizi sınıfları genişletmeye ve yöntemlerinizi belirli bir şekilde adlandırmaya zorlar).
Statik programlama modeli (sizi gereksiz yere yeniden derlemeye zorlar).
Karmaşık projelerdeki farklı test gruplarının yönetimi çok zor olabilir.
TestNG nedir?
TestNG'nin belgelerine göre tanımı aşağıdaki gibidir -
TestNG, JUnit ve NUnit'ten esinlenen bir test çerçevesidir, ancak onu daha güçlü ve kullanımı daha kolay hale getiren bazı yeni işlevler sunar.
TestNG, açık kaynaklı bir otomatik test çerçevesidir; neredeNG anlamına geliyor NextGenerji. TestNG, JUnit'e benzer (özellikle JUnit 4), ancak bir JUnit uzantısı değildir. JUnit'ten esinlenmiştir. Özellikle entegre sınıfları test ederken JUnit'ten daha iyi olacak şekilde tasarlanmıştır. TestNG'nin yaratıcısı Cedric Beust'tur .
Eski çerçevenin sınırlamalarının çoğunu ortadan kaldıran TestNG, geliştiriciye daha esnek ve güçlü testler yazma yeteneği verir. Testleri tanımlamak için Java Annotations'tan (JDK 5.0 ile tanıtıldı) büyük ölçüde ödünç aldığı için, Java dilinin bu yeni özelliğini gerçek bir üretim ortamında nasıl kullanacağınızı da gösterebilir.
TestNG Özellikleri
Ek açıklamaları destekler.
TestNG, daha fazla Java ve OO özelliği kullanır.
Entegre sınıfların test edilmesini destekler (ör. Varsayılan olarak, her test yöntemi için yeni bir test sınıfı örneği oluşturmaya gerek yoktur).
Derleme zamanı test kodunu çalışma zamanı konfigürasyonundan / veri bilgisinden ayırır.
Esnek çalışma zamanı yapılandırması.
'Test grupları'nı tanıtır. Testlerinizi derledikten sonra, TestNG'den tüm "ön uç" testleri veya "hızlı", "yavaş", "veritabanı" testleri vb. Çalıştırmasını isteyebilirsiniz.
Bağımlı test yöntemlerini, paralel testi, yük testini ve kısmi arızayı destekler.
Esnek eklenti API'si.
Çok iş parçacıklı test desteği.