Ön notlar
Farklı test türlerinin ayrımına girmeyeceğim, var zaten birkaç soru olduğunu dair bu sitelerde.
Ne var ve diyor alacağım: birimi "bir uygulamanın en küçük izole birimini test" anlamında test hangi Bu soru aslında türemiştir gelen
İzolasyon sorunu
Nedir Bir programın en küçük izole edilebilir birimi . Gördüğüm kadarıyla, hangi dilde kodladığınıza bağlı.
Micheal Feathers bir dikiş kavramı hakkında konuşuyor : [WEwLC, s31]
Bir dikiş, o yerde düzenleme yapmadan programınızdaki davranışı değiştirebileceğiniz bir yerdir.
Ve ayrıntılara girmeden, “test” inizin “biriminiz” ile arayüz oluşturabileceği bir programda yer almak için - birim testi bağlamında - bir dikiş anlıyorum.
Örnekler
Birim testi - özellikle C ++ 'da - belirli bir sorun için kesinlikle çağrılacak daha fazla dikiş eklemek için test edilen koddan gereklidir.
Örnek:
- Sanal olmayan uygulamanın yeterli olacağı bir sanal arabirim ekleme
- Bölme - genelleme (?) - bir (ufacık) sınıf daha ileri "sadece" bir test eklemeyi kolaylaştırmak için.
- Testler için bağımsız olarak derlenmelerini kolaylaştırmak amacıyla, tek yürütülebilir projenin görünüşte "bağımsız" kütüphanelere bölünmesi "sadece".
Soru
Umarım aynı noktayı soran birkaç sürümü deneyeceğim:
- Birim Testleri, bir uygulamanın kodunu birim testleri için "sadece" yapılandırmasını gerektiriyorsa veya aslında uygulama yapısına faydalı mıdır?
- Tabi kod genelleme birim-test edilebilir bir şey için kullanışlı hale getirmek için mi ama ünite testleri?
- Birim testleri eklemek, birini gereksiz yere genellemeye zorlar mı?
- Şekil birimi testleri kod üzerinde "her zaman" da zorlanıyor, genel olarak sorun alanından da görüldüğü gibi kod için iyi bir şekil mi?
Kodu kullanan ikinci bir yer olana kadar genelleme yapmadığını söyleyen bir başparmak kuralını hatırlıyorum. Birim Testleri ile her zaman kodu kullanan ikinci bir yer vardır - birim testi. Peki bu sebep genelleme için yeterli mi?