Bir yöntem için pozitif ve negatif birim testleri bireysel testlere sahip midir?

Örneğin, geçerli UK posta kodlarını kontrol eden bir yöntemim var. Doğru bir UK posta kodu girildiğinde test eden, bu yöntem için bir birim testi yazdım, yöntem true değerini döndürüyor.

Yanlış bir UK posta kodunu test etmek için ayrı bir birim testi oluşturmalı mıyım yoksa aynı testte mi yapmalıyım?

Teşekkürler

4
Test örneklerine, test paketlerine vb. Bakın. Bkz. en.wikipedia.org/wiki/XUnit
katma yazar Ed Heal, kaynak
Bu hangi dil için olacak? Orada bir sürü çerçeve var.
katma yazar Ed Heal, kaynak

3 cevap

Her vaka için ayrı test senaryoları oluşturmalısınız. Bu, bu yöntemi çağıran gelecekteki herhangi bir kodun işe yarayacağına dair size güven verecektir, ayrıca eğer 1 testin başarısız olduğunu görmek ve neden hiçbir fikre sahip olmak yerine tam olarak hangi testin başarısız olduğunu görebilirsiniz.

5
katma

Şahsen, farklı türdeki geçerli posta kodlarıyla (NE1 2XX, NE21 2XX, E1 3YY, vb. Farklı geçerli karakter ve sayı kombinasyonlarını deneyerek) doğru bir şekilde çalışıp çalışmadığını kontrol eden birkaç test ve geçersiz olanlarla başarısız olan birkaç test yazdım. farklı tipler (örn. NEI 3XX).

1
katma

Yaptığım şey iki işlev oluşturmaktır: test_valid_data() ve test_invalid_data() ve iki veri kümesi, valid_data [] deyin ve invalid_data [] . Daha sonra dört test prosedürü yazarım:

  • test_valid_data(valid_data[]) : This test should pass
  • test_valid_data(invalid_data[]) : This test should fail
  • test_invalid_data(valid_data[]) : This test should fail
  • test_invalid_data(invalid_data[]) : This test should pass

Bu şekilde çalışmak, belirli bir veri kümesine göre başarısız testi kesinleştirmenizi sağlar. Bu davranış, sadece bir büyük test ile elde etmek zor olurdu. Ayrıca, geçerli verilerin geçersiz sayılmadığını ve bunun tersini de doğrular.

1
katma
Bana bir örnek verebilirmisin? Bence bu gerçekten ilginç bir yöntem.
katma yazar ediblecode, kaynak
UK posta kodlarıyla örneğinizi takip ederek iki test işlevi oluşturun: test_valid_postcode() ve test_invalid_postcode() Sonra, iki veri kümesi oluşturun: valid_postcode [] ve invalid_postcode [] . Birincisi, test edilmek üzere geçerli bir UK posta kodu listesi içermelidir (örn .: M1 1AA, B33 8TH, EC1A 1BB, vs.). Daha sonra geçersiz UK posta kodunun bir listesi bulunmalıdır (örn .: M1 1AAAAAAAAA, B33 8TH BCB 123, vs.). Şimdi her bir veri setini her bir fonksiyona karşı test etmelisiniz. Bu size dört olası kombinasyon sunuyor. İki tanesi testi geçmeli ve diğer ikisi başarısız olmalıdır.
katma yazar fmorency, kaynak
İki testin başarısız olduğunun farkında olduğundan, düzgün bir şekilde halledebilirsiniz. Başarısız olan iki testten biri geçerse, kodunuzda yanlış bir şey olduğunu biliyorsunuzdur.
katma yazar fmorency, kaynak