Bobcat ile çalıştırılabilir spesifikasyonlar nasıl yazılır
Critter Stack'in yeni aracı Bobcat 1.0, insanların okuyabildiği ama doğrudan çalışan C# testleri yazmayı sağlıyor. Bu yazı, mevcut bir xUnit testinden başlayarak adım adım spesifikasyona geçişi, tablo tabanlı kuralları ve hata raporlamasını gösteriyor. Testlerini ekiplerle paylaşmak isteyen .NET geliştiricileri için pratik bir rehber.
Kilit noktalar
- Mevcut bir xUnit testine [BobcatFeature] eklemek yeterli; xUnit v3, TUnit, NUnit ve MSTest (3.10+) destekleniyor
- Yardımcı metotlar internal olmalı; private metotlar kaynak üreteci tarafından çağrılamaz
- SpecAssert.Check hatayı kaydedip devam eder, test sonunda tüm uyuşmazlıkları raporlar
- TableRunner.Run ile her satır için bir row metodu çağrılır ve sonuç sütunu karşılaştırılır
- Koleksiyonlar için keyColumns ile set verification kullanılır; sonuçlar EXTRA, MISSING, FAIL veya ORDER olarak işaretlenir
- xUnit v2 desteklenmiyor; Marten'in özel adaptörü test sonucunu aktarmadığı için Bobcat.* adaptörleri kullanılmalı
Bobcat 1.0, Critter Stack ekibinin çalıştırılabilir spesifikasyon aracı olarak yayımlandı. Yazar, FitNesse ve Storyteller geçmişinden gelen bu yaklaşımı, Gherkin dosyası ve bağlama katmanı olmadan doğrudan C# testi olarak sunuyor. Amaç, geliştiricinin yazdığı testi alan uzmanının okuyup gözden geçirebileceği bir spesifikasyona dönüştürmek.
Yazıda, mevcut bir xUnit testine [BobcatFeature] niteliğini eklemenin yeterli olduğu, adımların Given, When ve Then yorumlarından ya da [Given], [When], [Then] ile işaretlenmiş yardımcı metotlardan oluştuğu anlatılıyor. Tablo satırları StepTable ile yazılabiliyor, koleksiyon karşılaştırmaları için set verification kullanılıyor. Yardımcı metotların internal olması gerektiği ve kaynak üretecinin çağrıları derleme zamanında yakaladığı belirtiliyor.
Gerçek dünyada kullanımı
- Hesap bakiyesi, fiyatlandırma veya vergi kuralı gibi çok sayıda sınır durumu olan iş mantığını tablo halinde test etmek
- Ürün ekibinin ve alan uzmanlarının gözden geçirmesi gereken kuralları, koddan okunabilir bir çıktıyla paylaşmak
- Bir işlemin geçmiş kayıtlarında beklenmeyen veya eksik satır olup olmadığını set verification ile denetlemek
Neden önemli
Mevcut xUnit testlerinizi çoğu durumda yeniden yazmadan okunabilir spesifikasyona çevirebilirsiniz. Tablo ve koleksiyon desteği, veri yoğun testlerde hangi satırın neden başarısız olduğunu tek bakışta gösterir.
Benzer haberler
- Metalama 2027.0 ile metot çağrılarını build sırasında yönlendirmeMetalama / PostSharp Blog4 gün önce
- Bobcat 1.0 yayında: testlerden okunabilir C# spesifikasyonlarıJeremy D. Miller (The Shade Tree Developer)6 gün önce
- C# 14 extension member'ları: derleyicinin uyarmadığı gölgeleme hatasıDEV Community: #csharp1 gün önce