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:

  1. Arrange: Test verisi ve bağımlılıklar hazırlanır.
  2. Act: Test edilen fonksiyon veya metod çalıştırılır.
  3. 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.