Bazen nesnelerin sıkıca bağlanması gerekir. Örneğin, bir CsvFile
sınıf muhtemelen CsvRecord
sınıfla (veya ICsvRecord
arabirimle) sıkı bir şekilde çalışmalıdır .
Ancak geçmişte öğrendiğim kadarıyla, test odaklı geliştirmenin ana ilkelerinden biri "Asla bir seferde birden fazla sınıfı test etmektir". Yani ICsvRecord
gerçek örnekleri yerine alay veya saplamalar kullanmalısınız CsvRecord
.
Ancak bu yaklaşımı denedikten sonra, CsvRecord
sınıftan alay etmenin biraz kıllı olabileceğini fark ettim . Bu da beni iki sonuçtan birine götürüyor:
- Birim testleri yazmak zor! Bu bir kod kokusu! Elden Geçirme!
- Her bağımlılığın üstesinden gelmek mantıksızdır.
Alaylarımı gerçek CsvRecord
örneklerle değiştirdiğimde işler çok daha sorunsuz geçti. Diğer insanların düşüncelerine bakarken , yukarıdaki # 2'yi desteklediği anlaşılan bu blog gönderisine rastladım . Doğal olarak sıkıca bağlı nesneler için alay konusunda çok endişelenmemeliyiz.
Pist dışında mıyım? Yukarıda # 2 varsayımının bir dezavantajı var mı? Aslında tasarımımı yeniden düzenlemeyi düşünmeli miyim?