Şu anda ekibimizde ünite testine izin vermek için kod tasarımını değiştirmenin bir kod kokusu olup olmadığı veya bir kod kokusu olmadan ne ölçüde yapılabileceği konusunda tartışmalar var. Bu ortaya çıktı, çünkü sadece diğer tüm yazılım şirketlerinde bulunan uygulamaları uygulamaya koymaya yeni başladık.
Özellikle, çok ince olacak bir Web API servisimiz olacak. Başlıca sorumluluğu, web isteklerini / yanıtlarını toplamak ve iş mantığını içeren temel bir API'yi aramak olacaktır.
Bir örnek, bir kimlik doğrulama yöntemi tipi döndürecek bir fabrika yaratmayı planlıyoruz. Asla olacağı somut türden başka bir şey olacağını tahmin etmediğimizden, bir arayüzü miras almasına gerek yok. Ancak, Web API servisini test etmek için bu fabrika ile alay etmemiz gerekecek.
Bu, temel olarak DI'yi kabul etmek için Web API denetleyici sınıfını tasarladığımız anlamına gelir (yapıcısı veya ayarlayıcısı aracılığıyla); denetleyiciyi bu şekilde tasarlamak zorunda kalmamak için Ninject gibi üçüncü taraf bir çerçeve, ancak yine de bir arayüz oluşturmak zorunda kalacağız.
Ekipteki bazı kişiler sadece test yapmak için kod tasarlama konusunda isteksiz görünüyorlar. Bana öyle geliyor ki, eğer ünite testini yapmayı umuyorsanız, biraz uzlaşmanın olması gerekiyor, ama endişelerinin ne kadar gergin olduğunu bilemiyorum.
Sadece açık olmak gerekirse, bu yepyeni bir proje, bu yüzden birim testini etkinleştirmek için kod değiştirmekle ilgili değil; Bu, test edilebilir bir birim olarak yazacağımız kodu tasarlamakla ilgilidir.