CodeBlanks Logo Icon CodeBlanks

Coverage

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

Coverage

Coverage, testlerin kodun ne kadarını exercise ettiğini ölçer. dart test --coverage=coverage bir LCOV raporu üretir; genhtml bunu HTML'e çevirir.

İki tür: satır coverage'i (çalıştırılan satır sayısı) ve dal coverage'i (if/else dallarından kaç alındı). %100 satır, %100 dal anlamına gelmez.

Coverage, test kalıtesinin bir göstergesidir ama tek başına yeterli değildir. Yüksek coverage ile bile kenar durumlar test edilmemiş olabilir. Coverage tabloyu gösterir; kalıteyi garanti etmez.

Satır vs dal coverage

Satır coverage'i, çalıştırılan kaynak satırların oranını verir. Bir if satırı, koşul doğru veya yanlış olsa da 'çalıştırılmış' sayılır.

Dal coverage'i, if'in her iki kolunu da sınar. if (x) { a(); } else { b(); } için hem a() hem b() çağrılmalıdır.

Bu yüzden dal coverage daha sıkıdır. %90 satır coverage olabilir ama dal coverage %60'ta kalabilir. Her ikisini de izlemek gerekir.

Uygulama CoverageReport tanımla

Bir CoverageReport sınıfı tanımla: final int covered; final int total; CoverageReport(this.covered, this.total); double get percent => total == 0 ? 0 : (covered / total) * 100;. main içinde final report = CoverageReport(85, 100); yarat ve print('${report.percent.toStringAsFixed(0)}%'); ekle.

Başlangıç kodu

main.dart
void main() {
  // CoverageReport sınıfını tanımla (covered, total alanları; percent getter)
  // bir report yarat; percent'i yüzde olarak yazdır
}

Örnek çözüm

main.dart
class CoverageReport {
  final int covered;
  final int total;
  CoverageReport(this.covered, this.total);
  double get percent => total == 0 ? 0 : (covered / total) * 100;
}

void main() {
  final report = CoverageReport(85, 100);
  print('${report.percent.toStringAsFixed(0)}%');
}

Beklenen çıktı

85%

Soru ve cevaplar

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

1 dart test --coverage ne üretir?

  • LCOV/coverage verisi Doğru cevap
  • Çalıştırılabilir dosya
  • HTML raporu
  • Test dosyası

Açıklama: dart test --coverage LCOV biçiminde veri üretir.

2 Coverage parçalarını eşleştir

Kavram Anlamı
--coverage Bayrak
lcov.info Veri dosyası
genhtml HTML üretici
100% Tam coverage

3 Coverage oranı

Soru
var lineCoverage = ____;
Cevap
var lineCoverage = 0.85;

Açıklama: coverage 0-1 arası bir orandır.

Uzman bölümündeki tüm dersler