CodeBlanks Logo Icon CodeBlanks

Coverage

Test coverage ölçümünü öğrenirsin.

Coverage (kapsam)

Coverage, kodunun yüzde kaçının test edildiğini gösterir. Yüksek coverage, testlerin kodun büyük kısmını sınadığı anlamına gelir. Jest, built-in coverage aracı sunar: jest --coverage.

Örnek: jest --coverage çalıştırınca her dosya için kaç satırın, kaç fonksiyonun ve kaç dalın sınandığını gösterir. Coverage raporu, test edilmemiş kod parçalarını vurgular. Yüksek coverage iyi bir başlangıçtır; ama coverage kalıteyi garanti etmez. Önemli olan, kritik yolların sınanmasıdır. Coverage düşükse, genellikle önemli dallar test edilmemiştir. Test ekleyip coverage'ı artırmak, kod güvenilirliğini yükseltir. Üretim sistemlerinde %80+ coverage hedeflenir.

Coverage türleri

Coverage üç ana türe ayrılır: satır (lines), fonksiyon (functions) ve dal (branches). Satır coverage'ı kodun kaç satırının çalıştığını, fonksiyon coverage'ı kaç fonksiyonun çağrıldığını, dal coverage'ı if-else dallarının kaç yönünün sınandığını gösterir.

Örnek: bir if (x > 0) dalı için hem x > 0 hem x <= 0 durumları sınanmalıdır. Yalnızca biri sınanırsa satır coverage %100 olabilir ama dal coverage %50'dir. Dal coverage en zor ve en değerli olanıdır; kritik yolların sınandığını garanti eder. Coverage raporu, hangi satır ve dalların sınanmadığını gösterir. Bu, nereye test eklenmesi gerektiğini belirtir.

Uygulama Coverage hesapla

Bir calcCoverage(total, tested) fonksiyonu tanımla. return (tested / total) * 100 ile yüzde döndür. console.log ile calcCoverage(100, 80)'i yazdır.

Başlangıç kodu

index.js
// calcCoverage fonksiyonunu tanımla
// buraya yaz

// sonucu yazdır
// buraya yaz

Örnek çözüm

index.js
function calcCoverage(total, tested) {
  return (tested / total) * 100;
}
console.log(calcCoverage(100, 80));

Beklenen çıktı

80

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Coverage neyi ölçer?

index.js
jest --coverage
  • Bellek kullanımını
  • Disk doluluk oranını
  • Kodun yüzde kaçının test edildiğini Doğru cevap
  • Uygulamanın hızını

Açıklama: Coverage test kapsamını ölçer.

2 coverage komutunu tamamla

Soru
jest --____
Cevap
jest --coverage

Açıklama: jest --coverage coverage raporu üretir.

3 Türü anlamına eşle

Kavram Anlamı
satır (lines) Çalışan satırlar
fonksiyon (functions) Çağrılan fonksiyonlar
dal (branches) Sınanan if-else yönleri
--coverage Jest bayrağı

İleri seviye bölümündeki tüm dersler