Ürün grubumuzda birim testlerinden% 50-70 kod kapsamını ve birim testlerinden ve test otomasyonundan% 90 + kapsamayı hedefliyoruz. Yazma birimi testlerine bütçelenen tipik süre, 3-4 gün aşağı kodlama gerektiren her özellik için yaklaşık 1 gündür. Ancak bu birçok faktöre bağlı olarak değişebilir.
% 99 kod kapsamı harika. Birim testleri harika. Ama sadece% 99'luk kod testiyle test kapsamı dahilinde mi? Sadece ünite testlerinden bu kadar fazla kapsam alabileceğine inanmanın zor olduğunu düşünüyorum .
3 gün geçirdiğiniz durumda, aksi takdirde uygulamanız 1 gün süren bir ders için testler yazıyor. Neden bu kadar uzun sürdüğünü veya herhangi bir kodu paylaşmadığını ayrıntılı olarak anlatmadınız. Spekülasyondan, sınıfınız için gerçekten gerçek bir ünite testi yazmadığınızı, aslında test otomasyonu yazdığınızı tahmin ediyorum . Ve aslında yanlış bir şey yok - iki farklı test türü arasındaki farkı farkettiğiniz sürece.
Ancak üç günlük test yazımının sadece bir sınıf için olduğunu söylediniz. Belki de sınıfın kendisi birim testi için tasarlanmamıştır. Sınıf UI'yi uygular mı? Ağ? Dosya G / Ç? Öyleyse, Java çalışma zamanını çalışma zamanı ile etkileşime giren iş mantığınızdan daha fazla test etmek için daha fazla kod yazmış olabilirsiniz.
TDD, arayüzler ve bağımlılıklara arayüzler olarak düşünmenizi sağlar. Tek bir özellik için UI, ağ ve dosya / io uygulayan bu tek sınıf, birden çok sınıfa bölünmüş olarak daha iyi bir şekilde sunulabilir - biri ağ, diğeri dosya / io için Daha sonra bağımlılıklar için basit sahte nesnelerle her biri için uygun testleri uygulayabilirsiniz. Tabii ki, bunların hepsi daha fazla zaman alıyor. Kodlamak için 1 gün ve testler yazmak için 3 gün yerine, bu tasarım türü 3 günlük kodlama ve 1 günlük yazma testi gerektirebilir. Ancak kod daha iyi korunabilir ve tekrar kullanılabilir olacaktır.