7 puan yazan tothefullest08 2025-03-23 | Henüz yorum yok. | WhatsApp'ta paylaş

1. Genel Bakış

  • Sociable Test (gerçek DB bağlantısı) yaklaşımıyla birim test kurma yönteminin paylaşımı
  • TypeORM gibi ORM'lerde tip güvenliği sorunları olabildiğinden, gerçek DB kullanan testlere ihtiyaç vardır

2. Solitary Test vs Sociable Test

  • Karşılaştırma
    • Solitary Test, bağımlılıkları Mock ile değiştirerek bağımsız test yapar (hızlıdır ancak gerçek ortamdan sapmalar olabilir)
    • Sociable Test, gerçek dış bağımlılıklarla (DB) birlikte test ederek güvenilirlik sağlar (daha yavaştır ancak gerçekçi sorunları erken ortaya çıkarır)
  • Solitary Test'in sınırları
    • Mocking ile gerçek DB ile etkileşim sorunlarını eksiksiz biçimde yakalamak zordur
    • TypeORM'nin tip kontrolü sorunları nedeniyle çalışma zamanında hatalar oluşabilir
  • Sociable Test gerekliliği
    • Gerçek DB entegrasyonu sayesinde karmaşık sorgular, transaction'lar ve ilişki yapılandırması sorunları doğrulanabilir
    • Test veritabanı kurularak transaction yöntemiyle veri izolasyonu testi yapılabilir
  • DB Sociable Test'in avantajları ve dikkat edilmesi gerekenler
    • Avantajlar: yüksek güvenilirlikte testler, ORM kaynaklı sorunların erken tespiti, şema uyumsuzluklarının kontrolü
    • Dikkat edilmesi gerekenler: test hızının düşmesi, ortam kurulumunun karmaşık olması, transaction yönetimi ihtiyacı

3. NestJS'te DB bağlantılı testlerin uygulanması

  • Yapılandırma
    • MySQL kullanan test DB bağlantısının yapılandırılması
    • Transaction kullanarak her testteki değişikliklerin rollback ile geri alınması
  • Jest test framework'ünün yaşam döngüsünden yararlanma
    • beforeAll / beforeEach / afterEach / afterAll kullanımı
    • DB başlatma ve bağlantı, transaction başlatma ve bitirme ayarları

4. Sonuç

  • Birim test yazarken Solitary Test ve Sociable Test'i uygun şekilde birlikte kullanmak faydalıdır
  • ORM kaynaklı sorunları önlemek için Sociable Test büyük yardımcı olabilir

Henüz yorum yok.

Henüz yorum yok.