Yinelenen kod, tıpkı diğer kodlarda olduğu gibi birim test kodunda da bir kokudur. Testlerde yinelenen kodunuz varsa, güncellemek için orantısız sayıda testiniz olduğundan uygulama kodunu yeniden düzenlemeyi zorlaştırır. Testler, test edilen kod üzerinde çalışmanızı engelleyen büyük bir yük olmaktan ziyade, güvenle yeniden düzenleme yapmanıza yardımcı olmalıdır.
Çoğaltma fikstür kurulumundaysa, setUp
yöntemi daha fazla kullanmayı veya daha fazla (veya daha esnek) Oluşturma Yöntemi sağlamayı düşünün .
Çoğaltma, SUT'u işleyen koddaysa, o zaman kendinize neden birden fazla "birim" testinin tam olarak aynı işlevi kullandığını sorun.
Çoğaltma iddialarda ise, belki bazı Özel Onaylara ihtiyacınız vardır . Örneğin, birden çok test aşağıdaki gibi bir dizi iddiaya sahipse:
assertEqual('Joe', person.getFirstName())
assertEqual('Bloggs', person.getLastName())
assertEqual(23, person.getAge())
O halde assertPersonEqual
yazabilmek için belki de tek bir yönteme ihtiyacınız var assertPersonEqual(Person('Joe', 'Bloggs', 23), person)
. (Ya da belki de eşitlik operatörünü aşırı yüklemeniz gerekiyor Person
.)
Bahsettiğiniz gibi, test kodunun okunabilir olması önemlidir. Özellikle, bir testin amacının açık olması önemlidir . Pek çok test çoğunlukla aynı görünüyorsa (örneğin, çizgilerin dörtte üçü aynı veya hemen hemen aynı) önemli farklılıkları dikkatlice okuyup karşılaştırmadan fark etmenin ve fark etmenin zor olduğunu görüyorum. Dolayısıyla , yinelemeyi kaldırmak için yeniden düzenlemenin okunabilirliğe yardımcı olduğunu buldum , çünkü her test yönteminin her satırı doğrudan testin amacı ile ilgilidir. Bu, okuyucu için, doğrudan alakalı satırların rastgele bir kombinasyonundan ve sadece standart olan satırlardan çok daha faydalıdır.
Bununla birlikte, bazen testler benzer, ancak yine de önemli ölçüde farklı olan karmaşık durumları dener ve tekrarlamayı azaltmanın iyi bir yolunu bulmak zordur. Sağduyu kullanın: Testlerin okunabilir olduğunu ve amaçlarını netleştirdiğini hissediyorsanız ve testler tarafından çağrılan kodu yeniden düzenlerken teorik olarak minimum sayıda testten daha fazlasını güncelleme ihtiyacı duyuyorsanız, o zaman kusurları kabul edin ve ilerleyin daha üretken bir şeye. Daha sonra ilham geldiğinde her zaman geri dönebilir ve testleri yeniden düzenleyebilirsiniz!