Kotlin Test Kalıpları
Kotest ve MockK ile TDD metodolojisini takip ederek güvenilir, sürdürülebilir testler yazmak için kapsamlı Kotlin test kalıpları.
Ne Zaman Kullanılır
- Yeni Kotlin fonksiyonları veya class'lar yazarken
- Mevcut Kotlin koduna test coverage eklerken
- Property-based testler uygularken
- Kotlin projelerinde TDD iş akışını takip ederken
- Kod coverage için Kover yapılandırırken
Nasıl Çalışır
- Hedef kodu belirle — Test edilecek fonksiyon, class veya modülü bul
- Kotest spec yaz — Test scope'una uygun bir spec stili seç (StringSpec, FunSpec, BehaviorSpec)
- Bağımlılıkları mock'la — Test edilen birimi izole etmek için MockK kullan
- Testleri çalıştır (RED) — Testin beklenen hatayla başarısız olduğunu doğrula
- Kodu uygula (GREEN) — Testi geçmek için minimal kod yaz
- Refactor — Testleri yeşil tutarken implementasyonu iyileştir
- Coverage'ı kontrol et —
./gradlew koverHtmlReportçalıştır ve %80+ coverage'ı doğrula
TDD İş Akışı for Kotlin
RED-GREEN-REFACTOR Döngüsü
Kotlin'de Adım Adım TDD
Kotest Spec Stilleri
StringSpec (En Basit)
FunSpec (JUnit benzeri)
BehaviorSpec (BDD Stili)
Kotest Matcher'lar
Temel Matcher'lar
MockK
Temel Mocking
Coroutine Mocking
Coroutine Testi
Suspend Fonksiyonlar İçin runTest
Flow Testi
Property-Based Testing
Kotest Property Testing
Kover Coverage
Gradle Yapılandırması
Coverage Komutları
Coverage Hedefleri
Ktor testApplication Testi
Test Komutları
En İyi Uygulamalar
YAPILMASI GEREKENLER:
- ÖNCE testleri yaz (TDD)
- Proje genelinde Kotest'in spec stillerini tutarlı kullan
- Suspend fonksiyonlar için MockK'nın
coEvery/coVerify'ını kullan - Coroutine testi için
runTestkullan - İmplementasyon değil davranışı test et
- Pure fonksiyonlar için property-based testing kullan
- Netlik için
data classtest fixture'ları kullan
YAPILMAMASI GEREKENLER:
- Test framework'lerini karıştırma (Kotest seç ve ona sadık kal)
- Data class'ları mock'lama (gerçek instance'lar kullan)
- Coroutine testlerinde
Thread.sleep()kullanma (advanceTimeBykullan) - TDD'de RED fazını atlama
- Private fonksiyonları doğrudan test etme
- Kararsız testleri görmezden gelme
CI/CD ile Entegrasyon
Hatırla: Testler dokümantasyondur. Kotlin kodunuzun nasıl kullanılması gerektiğini gösterirler. Testleri okunabilir yapmak için Kotest'in açıklayıcı matcher'larını ve bağımlılıkları temiz mock'lamak için MockK kullanın.


