Birkaç şey yapan bu sınıfı yazdım (belki de bu Tek Sorumluluk İlkesinin ihlalidir). Şimdi, projenin başka bir kısmının bu mantığın bir parçasına ihtiyacı olduğunu ve onu ortaya koyacağım şeklin, orijinal Test Edilen Sistemim'den bir sınıf çıkarmak olduğunu anlıyorum.
Herhangi bir test kodunu değiştirmek zorunda kalmadan bunu yapabilmeyi bekliyorum, ancak bitirdiğimde testin artık bir birim test olmadığını iddia edebilirsiniz . Orijinal sınıfı ve çıkardığım sınıfı test edecek . Başka bir deyişle, bir test vakam olacak, ancak iki sistem test edilecek.
Bitirdikten sonra test kodumu yeniden düzenlemem gerekir mi? IE: Bir ExtractedClassTest oluşturun ve ilgili tüm testleri OriginalClassTest içine taşımak? Bu biraz riskli görünebilir: Süreçte biraz kapsama alanı kaybedebilirim, bir testi taşımak kadar basit olmayabilir ve işe yaradığını bildiğim ama artık yapamayacağımı bildiğim bazı test kodlarını yeniden yazabilirim, vb.
Öte yandan, eğer OriginalClassTest'i olduğu gibi bırakırsam, bunun bir test bakım sorunu olduğunu görebilirim. ExtractedClass testlerinin nerede olduğunu bulmak biraz kafa karıştırıcı olacaktır. İlk izleniminiz, var olmayacağıdır. Zaman içinde birçok üretim kodu yeniden düzenleme ile bu ciddi bir sorun haline gelebilir.
TDD'de yeniyim, bu yüzden bir uzmanın tavsiyesi istiyorum. Teşekkürler!