@ RevBingo'nun cevabını gerçekten seviyorum, çünkü% 100'e karşı mücadelenin kullanılmayan kodu temizlemenize veya silmenize neden olabileceğini öne sürüyor. Diğer cevaplarda görmediğim şey, ne zaman yüksek kapsamaya ihtiyaç duyduğunuza ve ne zaman ihtiyaç duymadığınıza bağlı. Bunu başlatırken bir bıçak aldım. Bunun gibi bir grafiğe ayrıntı eklemek, tüm kodlar için doğru olan bir test kapsamı numarası bulmaktan daha yararlı bir takip olacaktır.
100%
Java.util Collections gibi halka açık bir API için, bir Veritabanına bağlı değildir ve HTML döndürmez, zaman veya% 90-95'e razı olsanız bile,% 100 kapsamın asil bir başlangıç hedefi olduğunu düşünüyorum. kısıtlamaları. Tam özellikli olduktan sonra test kapsamını artırmak, diğer kod inceleme türlerine göre daha ayrıntılı bir inceleme düzeyi zorlar. Eğer API’niz çok popülerse, insanlar onu kullanacak, alt sınıflandıracak, seri hale getirecek, vb. Bekleyemezsiniz. İlk deneyimlerinin bir hata bulmasını ya da tasarım gözetimini istemiyorsunuz!
% 90
Veri yapılarını alan ve veri yapılarını döndüren iş altyapısı kodu için,% 100 hala muhtemelen iyi bir başlangıç hedefidir, ancak bu kod çok fazla suistimali davet edecek kadar açık değilse, belki% 85 hala kabul edilebilir mi?
% 75
Dizeleri alan ve döndüren kodlar için birim testinin çok daha kırılgan olduğunu düşünüyorum, ancak yine de birçok durumda yararlı olabilir.
% 50 veya daha az
HTML döndüren işlevler için test yazmaktan nefret ediyorum çünkü çok kırılgan. Birisi CSS’i, JavaScript’i veya döndürdüğünüz tüm HTML ve İngilizce bloğunu insan son kullanıcılarına bir anlam ifade etmiyorsa ne olur? Küçük bir HTML üretmek için çok fazla iş mantığı kullanan bir işlev bulabilirseniz, bu test edilmeye değer olabilir. Ancak bunun tersi durum hiç denenmeye değer olmayabilir.
0% civarında
Bazı kodlar için "doğru" tanımı "son kullanıcı için anlamlıdır" dır. Otomatik dilbilgisi denetimi veya çıktısını doğrulayan HTML gibi bu koda karşı yapabileceğiniz geleneksel olmayan testler vardır. Sık sık işyerinde avlandığımız küçük tutarsızlıklar için grep ifadeleri bile ayarladım, sistemin geri kalanı "Giriş Yap" dediğinde "Giriş" demek gibi. Bu adam kesinlikle bir ünite testi değil, belirli bir çıktı beklemeden sorunları yakalamanın yararlı bir yolu.
Sonuçta, ancak bir insan, insana duyarlı olanı yargılayabilir. Birim testi size orada yardımcı olamaz. Bazen bunu doğru bir şekilde değerlendirmek için birkaç insan gerekir.
Mutlak% 0
Bu üzücü bir kategori ve onu yazmak için daha az insan gibi hissediyorum. Ancak, yeterince büyük olan herhangi bir projede, herhangi bir ticari fayda sağlamadan insan haftalarını emen tavşan delikleri vardır.
Bir kitap satın aldım, çünkü Hazırda Bekletme durumunu sınamak için verilerin otomatik olarak nasıl alay edildiğini gösterdiğini iddia etti. Ancak yalnızca Hazırda Beklet HQL ve SQL sorgularını test etti. Çok fazla HQL ve SQL yapmak zorundaysanız, gerçekten Hazırda Bekletme avantajından yararlanamazsınız. Bir tür Hazırda Bekletme belleği veritabanı var, ancak testlerde etkin olarak nasıl kullanılacağını bulmak için zaman harcamamıştım. Çalışıyor olsaydım, Hazırda Bekletme'nin bazı sorguları çalıştırmasına neden olan bir nesne grafiğinde gezinerek işleri hesaplayan herhangi bir iş mantığı için yüksek (% 50 -% 100) test kapsamı olmasını isterdim. Bu kodu test etme yeteneğim şu anda% 0 civarında ve bu bir sorun. Bu yüzden projenin diğer alanlarındaki test kapsamını iyileştiriyorum ve büyük ölçüde bu fonksiyonlar için testler yazmak daha kolay olduğu için veritabanına erişenlerin yerine saf fonksiyonları tercih etmeye çalışıyorum. Yine de,