Birim Testi: Acemi Soruları

3 Cevap php

Sonunda ben bir süre için bunu yapıyor gerektiği bilinmektedir olan, birim test ile başlıyorum, ama ben bir kaç soru var:

  • Should or shouldn't I retest parent classes when testing the children if no methods have been overwritten?
  • Conceptually, how do you test the submitted part of a form? I'm using PHP. (Edit: The reason I ask this is that I have a high level form class that generates a form, validates it, filters it, and generates any error messages by taking a JSON-like array as input and delegating to a variety of smaller classes. However, I can't test the errors, etc without submitting the form. Edit: This looks like it might be an answer.)
  • If you have optional parameter in a method, should you write a test for both when they are present and when they are not?
  • Should unit testing in any way be combined with testing code execution time or should they remain completely separate?
  • Is there any valid reason not to run your full test suite every time?
  • Just so I'm getting my terminology right, to what does the unit in unit testing refer? The class being tested? The method? The parameter? Something else?

3 Cevap

(Pek sorularınızı olarak aynı sırayla)

  • Tam test paketi çok uzun sürmüyor, her zaman tam çalıştırmak gerekir. Sık sık yan etkileri tam olarak değişikliklere neden olabilir bilmiyorum.

  • Eğer sevdiğiniz birim test aracı ile hız testleri birleştirebilirsiniz, bunu yapmalıyım. Bu size değişikliklerin kalitesi hakkında ek bilgi verir. Ama sadece sizin kod zaman kritik parçalar için bunu.

  • Vikipedi: "Bir birim, bir uygulamanın küçük test edilebilir bir parçasıdır."

Sırayla soruların yanıtları:

  • Ana sınıfları zaten test varsa o tekrarını önlemek ve sadece çocuk değişti çocuğun ya da herhangi yönlerinden yeni yönlerini test.
  • Emin değil - çok az PHP yaptık.
  • Evet => Test yönteminin bütün yönleri.
  • Sen performansını sınamak ama diğerleri test işlevselliği odaklanmış olabilir gibi onlar performans nereye odaklanmış olurdu bazı birim testler olabilir. Aynı testte hem karışmaz.
  • İdeal sık sık onları her zaman çalıştırın ve gerekir. Yürütme zamanı büyük Bazen sen ve küçük suit içine üstlenmeden şey değişir o zaman yalnızca etkilenen suit yürütme düşünebilirsiniz - ama yine de periyodik olarak her şeyi yapmak.

Elimden olanları cevap olacak.

Hiçbir yöntemleri üzerine olması halinde çocukları test ederken ya da ben ana sınıfları tekrar test gerektiğine?

Tam çocuğun test only what changes sonra, üst test etmelisiniz.

Eğer bir yöntemle isteğe bağlı bir parametre varsa, onlar olmadıkları zaman, onlar mevcut olduğunda her ikisi için de bir test yazmak ve gerekir?

Evet, davranış değişikliği neden bir şey test edin.

Herhangi bir şekilde birim test test kod yürütme zamanı ile kombine edilmelidir ya da tamamen ayrı kalmalıdır?

Onlar ayrı kalmalıdır. Birim test bir yöntem gerekeni yapar test etmektir. Sen darboğazları bulmak için onu yıkmak, sonra bir sistem düzeyinde kod yürütme süresini test etmelisiniz. Her birimin performansını test sadece erken optimizasyon yol açacaktır.

Tam test paketi her zaman çalıştırmak için herhangi bir geçerli nedeni var mı?

Lütfen test paketi büyük ve uzun zaman alırsa, sadece while you're still developing bunun bir alt kümesi çalıştırmak isteyebilirsiniz. (Seni düşünmek) başka bir şey kırmadım emin olmak için yapılır zaman tüm takımı çalıştırmak gerekir.

Sadece bu yüzden birim test birim ne anlama gelir, benim terminoloji hakkını alıyorum? Sınıf test ediliyor? Yöntem,? Parametre? Başka bir şey?

"Birim" yöntemi denenmektedir anlamına gelir. Bu yazılım için yıkmak için mantıklı en küçük birimidir. A sınıfı için bir yöntem B sınıfı kullanıyor olabilir, ancak bu yöntem için yazmak herhangi bir test takmamalıydım. Sadece bu yöntem test.