mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-03-30 21:53:28 +08:00
2.9 KiB
2.9 KiB
Test Coverage
Test coverage'ını analiz et, eksiklikleri tanımla ve 80%+ coverage'a ulaşmak için eksik test'leri oluştur.
Adım 1: Test Framework'ünü Tespit Et
| Gösterge | Coverage Komutu |
|---|---|
jest.config.* veya package.json jest |
npx jest --coverage --coverageReporters=json-summary |
vitest.config.* |
npx vitest run --coverage |
pytest.ini / pyproject.toml pytest |
pytest --cov=src --cov-report=json |
Cargo.toml |
cargo llvm-cov --json |
pom.xml JaCoCo ile |
mvn test jacoco:report |
go.mod |
go test -coverprofile=coverage.out ./... |
Adım 2: Coverage Raporunu Analiz Et
- Coverage komutunu çalıştır
- Çıktıyı ayrıştır (JSON summary veya terminal çıktısı)
- 80% coverage'ın altındaki dosyaları listele, en kötüden başlayarak sırala
- Her yetersiz coverage'lı dosya için şunları tanımla:
- Test edilmemiş fonksiyonlar veya metodlar
- Eksik branch coverage (if/else, switch, error yolları)
- Payda'yı şişiren dead code
Adım 3: Eksik Test'leri Oluştur
Her yetersiz coverage'lı dosya için, bu önceliği takip ederek test'ler oluştur:
- Happy path — Geçerli input'larla temel fonksiyonalite
- Hata işleme — Geçersiz input'lar, eksik veri, network hataları
- Edge case'ler — Boş diziler, null/undefined, sınır değerleri (0, -1, MAX_INT)
- Branch coverage — Her if/else, switch case, ternary
Test Oluşturma Kuralları
- Test'leri kaynak kodun yanına yerleştir:
foo.ts→foo.test.ts(veya proje konvansiyonu) - Projeden mevcut test pattern'lerini kullan (import stili, assertion kütüphanesi, mocking yaklaşımı)
- Harici bağımlılıkları mock'la (veritabanı, API'ler, dosya sistemi)
- Her test bağımsız olmalı — test'ler arasında paylaşılan değişken state olmamalı
- Test'leri açıklayıcı isimlendirin:
test_create_user_with_duplicate_email_returns_409
Adım 4: Doğrula
- Tam test suite'ini çalıştır — tüm test'ler geçmeli
- Coverage'ı yeniden çalıştır — iyileşmeyi doğrula
- Hala 80%'in altındaysa, kalan boşluklar için Adım 3'ü tekrarla
Adım 5: Raporla
Öncesi/sonrası karşılaştırmasını göster:
Coverage Report
──────────────────────────────
File Before After
src/services/auth.ts 45% 88%
src/utils/validation.ts 32% 82%
──────────────────────────────
Overall: 67% 84% PASS:
Odak Alanları
- Karmaşık branching'e sahip fonksiyonlar (yüksek cyclomatic complexity)
- Hata işleyiciler ve catch blokları
- Codebase genelinde kullanılan utility fonksiyonları
- API endpoint handler'ları (request → response akışı)
- Edge case'ler: null, undefined, empty string, empty array, zero, negatif sayılar