Büyük kod değişiklikleri gerçekleştiğinde (yeni POJO kümesi, büyük uygulama yeniden düzenlemesi vb.), Birim testleri elden geçirilmek yerine yorumlanma eğilimindedir.
Her zaman yeniden düzenlemeyi ve işlev değişikliğini ayrı tutmaya çalışıyorum. İkisini de yapmam gerektiğinde, genellikle önce yeniden düzenlemeyi taahhüt ederim.
İşlevsellik değiştirmeden kod yeniden aktive edildiğinde mevcut birim testlerinin yeniden aktive etmenin yanlışlıkla işlevselliği bozmadığından emin olması gerekir. Bu yüzden böyle bir taahhüt için birim testlerini devre dışı bırakmayı ya da kaldırmayı büyük bir uyarı işareti olarak kabul ediyorum. Bunu yapan herhangi bir geliştiriciye, kod gözden geçirilirken yapmamaları söylenmelidir.
İşlevselliği değiştirmeyen değişikliklerin hala hatalı birim testleri nedeniyle birim testlerinin başarısız olmasına neden olması mümkündür. Değiştirdiğiniz kodu anlıyorsanız, bu tür birim sınama hatalarının nedeni genellikle hemen açık ve düzeltilmesi kolaydır.
Örneğin, bir işlev üç argüman alıyorsa, işlevin ilk iki argümanı arasındaki etkileşimi kapsayan bir ünite testi, üçüncü argüman için geçerli bir değer sağlamaya özen göstermemiş olabilir. Birim testindeki bu hata, test edilen kodun yeniden düzenlenmesi sonucu ortaya çıkabilir, ancak kodun ne yapması gerektiğini ve birim testinin ne test ettiğini anlarsanız düzeltmesi kolaydır.
Mevcut işlevselliği değiştirirken, bazı ünite testlerini de değiştirmek genellikle gerekli olacaktır. Bu durumda ünite testleri, kodunuzun işlevselliği amaçlandığı şekilde değiştirmesini ve istenmeyen yan etkileri olmamasını sağlar.
Hataları düzeltirken veya yeni işlevler eklerken, genellikle daha fazla birim testi eklemek gerekir. Bunlar için önce birim testlerini yapmak ve daha sonra hataları düzeltmek veya yeni işlevler uygulamak yardımcı olabilir. Bu, yeni birim testlerinin eski kodla geçmediğini, ancak yeni kodla geçmediğini doğrulamayı kolaylaştırır. Bu yaklaşım tamamen dezavantajsız olsa da, aynı zamanda hem yeni birim testlerini hem de kod güncellemelerini aynı anda gerçekleştirme lehine argümanlar var.
Kullanım kapsamını kapsayan entegrasyon testlerinde zaman harcanması daha küçük kapsamlı testleri daha az / hiç önemli yapmaz.
Bunun için bazı gerçekler var. Yazılım yığınının alt katmanlarını kapsama alabilirseniz, yazılım yığınının yüksek katmanlarını hedefleyen testlerle kodunuzu yeniden test ederken testleriniz daha yararlı olabilir.
Bununla birlikte, bir birim testi ve bir entegrasyon testi arasındaki kesin ayrım konusunda bir anlaşma bulacağınızı sanmıyorum. Ve bir geliştiricinin bir birim testini, bir diğerini de bir entegrasyon testini çağırdığı, yararlı bir test durumu olduğu konusunda hemfikir oldukları bir test durumunuz varsa endişelenmem.