Unit Test Nedir?
İngilizce: Unit Test
Unit test, fonksiyon veya sınıf gibi küçük bir kod birimini dış bağımlılıklardan izole ederek hızlı ve otomatik doğrulayan testtir.
Unit Test Nedir?
Unit test, kodun küçük ve sınırları net bir parçasının beklenen davranışını kontrol eder. Genellikle bir fonksiyon, sınıf metodu veya domain servisi test edilir; veritabanı, dosya sistemi veya ağ gibi dış bağımlılıklar mock, stub veya fake ile izole edilir.
Nasıl Yazılır?
Yaygın yapı Arrange, Act, Assert düzenidir:
- Arrange: Test verisi ve bağımlılıklar hazırlanır.
- Act: Test edilen fonksiyon veya metod çalıştırılır.
- Assert: Dönen değer, atılan hata veya değişen durum kontrol edilir.
İyi unit test hızlı, deterministik ve okunabilir olmalıdır. Zaman, rastgelelik, dış servis veya global state testin sonucunu etkiliyorsa test kırılgan hale gelir.
İş Dünyasında Kullanımı
Unit testler fiyat hesaplama, yetki kontrolü, form validasyonu, stok kuralı ve veri dönüşümü gibi iş mantığını güvence altına alır. TDD pratiğinde önce unit test yazmak tasarım geri bildirimi sağlar.
CI/CD içinde hızlı çalışan unit test seti, geliştiricilere merge öncesi erken uyarı verir. Ancak sadece unit test yeterli değildir; entegrasyon ve uçtan uca testler farklı riskleri kapsar.
İlgili Terimler
API testi, endpoint'lerin doğru yanıt, hata kodu, performans ve yetki davranışlarını otomatik senaryolarla doğrular.
CI/CDCI/CD, kod değişikliklerini otomatik derleme, test ve dağıtım hatlarından geçirerek sürümü tekrarlanabilir hale getiren DevOps pratiğidir.
Test KapsamıTest kapsamı, otomatik testlerin kodun hangi satır, dal veya fonksiyonlarını çalıştırdığını gösteren kalite metriğidir.
E2E TestE2E test, bir uygulamanın kullanıcı yolculuğunu tarayıcı, API ve veritabanı dahil gerçek akışa yakın şekilde doğrular.
Entegrasyon TestiEntegrasyon testi, birden fazla modül, servis veya dış sistem birlikte çalıştığında beklenen veri akışını doğrular.
JestJest, JavaScript ve TypeScript için Facebook tarafından geliştirilen, kolay kullanımıyla popüler olan test çerçevesidir.
Sola Kaydırılmış TestSola kaydırılmış test, gereksinim, tasarım ve kodlama aşamasında otomatik kontrolleri başlatıp hataları üretim öncesi yakalama yaklaşımıdır.
TDDTDD, önce başarısız testi yazıp ardından testi geçirecek en küçük kodu ekleyerek tasarımı adım adım şekillendirme pratiğidir.
Test OtomasyonuTest otomasyonu, seçilen test senaryolarını araçlarla tekrarlı çalıştırıp sonuçlarını CI veya raporlama sistemlerine aktarma pratiğidir.