Bir işlevi test etmek için test yöntemi, hala birim testi olarak adlandırılan bir işlevi test ederek mi?


11

B işlevini test edersek, bu B işlevini çağıran bir C işlevini test ederek, yani bu B işlevini çağıran C işlevini test etmek için bir test programı yazarak, test yöntemi hala birim testi olarak mı adlandırılır, yoksa başka bir şey mi?

Hedef fonksiyonu çağıran bir fonksiyon üzerinde dolaylı olarak test etmek ne zaman ve bir fonksiyonu doğrudan test etmek ne zaman tercih edilir?

Yanıtlar:


9

Birim testin popüler bir tanımı ISTQB'nin tanımıdır :

Birim testi, fonksiyonlar, sınıflar, prosedürler, arayüzler gibi bir uygulamanın en küçük test edilebilir parçasıdır. Birim testi, tek tek kaynak kodu birimlerinin kullanıma uygun olup olmadıklarını belirlemek için test edildiği bir yöntemdir.

Bu tanıma göre:

  • B için bir test programı yazarsanız, bu bir birim testtir (B'nin).
  • C için bir test programı yazarsanız, bu bir birim testtir (C nin).

Şimdi niyet ve test kapsamı arasında bir fark olabilir. C için B'yi kullanarak bir test programı yazarsanız, bu hala C'nin birim testidir, çünkü tek yapabileceğiniz C'ye giriş sağlamak ve B'nin doğru olup olmadığını kontrol etmek. Sadece B'nin işe yaradığını, çünkü C'nin işe yaradığını belirlersiniz.

Entegrasyon testinin bir tanımı da vardır :

Arabirimlerdeki ve tümleşik bileşenler veya sistemler arasındaki etkileşimlerdeki hataları ortaya çıkarmak için yapılan test.

Yazılım bileşenlerinin olağan tanımı, bağımsız olduğu ve kendi başına dağıtılabileceği anlamına gelir . Burada, B ve C bağımsız bileşenler gibi görünmüyor, bu yüzden entegrasyon testimiz yok.


5

Bu, bir birimi ne düşündüğünüze bağlıdır. Eğer Cayrı ayrı test mantıklı değil o kadar basit, o zaman test bir birim testidir.

Çok daha önemli senin içindir paketi yakın% 100 hat kapsama zorunda ve tüm pratik olarak beklenen kod yollarını test etmek, belirli bir birim için birim testlerin.


1

Evet, işlevler başka işlevleri çağırıyorsa yine de bir birim sınaması diyoruz.

Birim testleri, özel uygulamaları değil, bir sınıfın kamusal davranışını test etmelidir. Bu Google'ın tuvalet makalesi üzerindeki testinde önerildiği gibi .

Temiz Kod kurallarına uyarsanız, işlevleriniz 4 satırdan daha uzun olmamalıdır. Bu, birim testlerinizle başka bir özel işlevi test etmemeyi imkansız hale getirir.

Çoğu özel işlevi neden ayrı ayrı birim test etmemelisiniz? Çünkü üstlenmeden zorlayacaktır tüm uygulama birim testleri güncelleyerek tutmak. Çoğunluğunuz olduğunda bu sinir bozucu olurken, halk davranışı yeniden düzenleme sırasında değişmemeli ve bu nedenle testin herhangi bir güncellemeye ihtiyacı olmamalıdır. Özel ebeveynleri ile ayrıcalıkları test edebilmelisiniz. Bazen karmaşık ayrıcalıkları test etmeye değer olabilir, ancak kendi başlarına ayrı bir sınıf olup olmadıklarını merak ediyor musunuz?

Entegrasyon testi :

Şimdi işlev başka bir sınıfın parçasıysa farklıdır. Sonra buna bileşen testi veya entegrasyon testi diyoruz. Birden fazla sınıfı birleştiriyorsunuz ve bunlara karşı bir test yürütüyorsunuz. Fonksiyon B, Fonksiyon C'ye bağlı olacaktır. Fonksiyon B'yi test edebilmek için, test ettiğiniz fonksiyonu izole etmek için bağımlılık enjeksiyonunu kullanabilirsiniz , şimdi tekrar bir ünite testi olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.