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.