# Birim Testi

Adres: https://softwaredictionary.org/tr/terimler/unit-test
Kategori: Test ve Kalite
Son güncelleme: 2026-09-30
İngilizcesi: Unit Test
Okunuşu: yunit test

Kısaca: Birim testi, bir fonksiyonun, metodun ya da sınıfın programın geri kalanından yalıtılmış olarak doğru davrandığını doğrulayan küçük ve otomatik bir kontroldür.

## Birim testi nedir?

Birim testi, programın birim adı verilen küçük bir parçasını bilinen girdilerle çağıran ve çıktının beklediğiniz sonuçla eşleştiğini kontrol eden kısa bir kod parçasıdır. Birim genellikle tek bir fonksiyon, metot ya da sınıftır. Sonuç farklıysa test başarısız olur ve size bozulan davranışı tam olarak gösterir.

Birim testlerinin çoğu Arrange, Act, Assert (Hazırla, Çalıştır, Doğrula) desenini izler: girdileri hazırlarsınız, test edilen kodu çağırırsınız, ardından sonucu doğrularsınız (assert). Test çalıştırıcısı (test runner) tüm testleri bulur, çalıştırır ve hangilerinin geçtiğini ya da kaldığını raporlar. Birim testleri veritabanı ve ağ gibi yavaş kaynaklardan, çoğu zaman bunların yerine mock'lar koyarak, uzak durduğu için binlercesi birkaç saniyede çalışabilir.

Birim testlerini, duvarı örmeden önce her tuğlanın çatlak olup olmadığına bakmaya benzetebilirsiniz. Geliştiriciler bunları kendi makinelerinde ve CI/CD hatlarında sürekli çalıştırır; test piramidinin geniş tabanını oluştururlar, üstlerinde ise daha az sayıda entegrasyon testi ve uçtan uca test yer alır.

Birim testleri sıklıkla entegrasyon testleriyle karıştırılır. Birim testi tek bir parçayı yalıtılmış olarak kontrol eder; entegrasyon testi ise birkaç parçanın, örneğin kodunuzun ve gerçek bir veritabanının birlikte doğru çalıştığını kontrol eder. Yalnızca bileşenler etkileşime girdiğinde ortaya çıkan bir hata genellikle birim testlerinden kaçar.

## Önemli noktalar

- Birim testi, tek bir fonksiyon gibi küçük bir kod parçasını yalıtılmış olarak kontrol eder.
- Birim testlerinin çoğu Arrange, Act, Assert desenini izler.
- Birim testleri gerçek veritabanı, ağ ve dosya sisteminden kaçındığı için hızlıdır.
- Test piramidinin tabanını oluştururlar ve her kod değişikliğinde çalıştırılırlar.

## Örnek: Node.js'in yerleşik test çalıştırıcısıyla bir birim testi

```javascript
import { test } from "node:test";
import assert from "node:assert/strict";

function add(a, b) {
  return a + b;
}

test("add returns the sum of two numbers", () => {
  // Arrange and act: call the unit with known inputs
  const result = add(2, 3);
  // Assert: check the output
  assert.equal(result, 5);
});
```

## Sık sorulan sorular

**Birim testi ile entegrasyon testi arasındaki fark nedir?**

Birim testi, bir kod parçasını genellikle bağımlılıkları mock'larla değiştirilmiş hâlde yalıtılmış olarak kontrol eder. Entegrasyon testi ise kodunuz ve bir veritabanı gibi birkaç gerçek bileşenin birlikte doğru çalıştığını kontrol eder.

**İyi bir birim testi nasıl olur?**

İyi bir birim testi hızlıdır, diğer testlerden bağımsızdır, tekrarlanabilirdir ve net bir adla tek bir davranışı kontrol eder. Başarısız olduğunda adı ve mesajı, hata ayıklamaya gerek kalmadan neyin bozulduğunu söylemelidir.

**Kaç tane birim testi yazmalıyım?**

Sabit bir sayı yoktur. İyi bir kural, genel (public) fonksiyonlarınızın her önemli davranışını; boş girdiler, sınır değerler ve hata yolları gibi uç durumlar dahil test etmektir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
