b()
Artık kullanılmadığında çıkarılması arzu edilir , aynı nedenden dolayı kullanılmayan fonksiyonların ilk etapta eklenmemesi arzu edilir. İster "okunabilirlik" ya da başka bir şey olarak adlandırın, diğer her şey eşittir, kodun hiçbir faydası olmadığı bir kod geliştirmesidir. Sahip olmamanın daha iyi olduğu en az bir özel önlem olması uğruna, bu değişiklikten sonra gelecekteki bakım maliyetinin sıfır olduğunu garanti eder!
b()
Yeni bir şeyle değiştirmenin herhangi bir düşüncesi elbette şu anda çağıran tüm kodların göz önünde bulundurulması b()
ve testlerin tüm kodların bir alt kümesi olması nedeniyle testleriyle gerçekten kaldırmak için gereken herhangi bir özel teknik bulamadım . ".
Genellikle benim için çalıştığını akıl yürütme çizgisi noktasında ben fark nerede olduğunu f()
kaydetmiştir b()
nedenle eskimiş b()
en azından kullanım dışı olmalı ve ben tüm aramaları bulmak için arıyorum b()
çağrıları ile bunların yerine niyetiyle f()
, I test kodunu da dikkate alın . Özellikle, b()
artık gerekli değilse , birim testlerini kaldırabilirim ve kaldırmalıyım.
Sen hiçbir şey oldukça haklısınız güçler haber beni o b()
artık gereklidir. Bu bir beceri meselesidir (ve ince söylediği gibi, üst düzey testlerle ilgili kod kapsamı raporları). Sadece birim testler ve fonksiyonel testler b()
söz konusu değilse, o zaman dikkatli bir şekilde yayınlanan herhangi bir arayüzün bir parçası olmadığından iyimser olabilirim ve bu yüzden kaldırmak doğrudan kontrolüm altında olmayan herhangi bir kod için bir kırılma değişikliği değildir.
Kırmızı / yeşil / refactor döngüsü testlerin kaldırılmasından açıkça bahsetmez. Dahası, kaldırma b()
açıkça bileşeni beri açık / kapalı ilkesine aykırı olduğu değişiklik için açık. Bu adımı basit TDD'nin dışında bir şey olarak düşünmek istiyorsanız, devam edin. Örneğin, bir testin "kötü" olduğunu bildirmek için bir işleminiz olabilir; bu durumda, orada olmaması gereken bir şeyi (gereksiz işlev b()
) test ettiği gerekçesiyle testi kaldırmak için uygulanabilir .
Uygulamada çoğu insanın muhtemelen kırmızı / yeşil / refactor döngüsüyle birlikte belirli bir miktarda yeniden tasarım yapılmasına izin verdiğini veya kesin olarak konuşsa bile yedek ünite testlerinin "refactor" un geçerli bir parçası olduğunu düşünüyorlar. yeniden düzenleme değil. Ekibiniz, bu kararı doğrulamak için ne kadar drama ve evrakın dahil edilmesi gerektiğine karar verebilir.
Her neyse, b()
önemli olsaydı, bunun için fonksiyonel testler olurdu ve bunlar hafifçe kaldırılmazdı, ancak zaten sadece birim testler olduğunu söylemiştiniz. Birim testleri (kodun değiştirdiğiniz mevcut iç tasarımına yazılır) ve fonksiyonel testler (belki de değiştirmek istemediğiniz yayınlanmış arayüzlere yazılır) arasında doğru bir şekilde ayrım yapmazsanız, daha dikkatli olmanız gerekir birim testlerini kaldırma hakkında.