2011-12-14 15 views
7

NUnit'i bir süredir kullanıyorum ve test sınıflarımı AssertionHelper'dan türetiyorum. yerineAssertionHelper'ı NUnit ile kullanmamanın bir nedeni var mı?

Expect(myValue, Is.EqualTo(3), "value wasn't equal to 3"); 

: Bunu yapmak suretiyle, benim testler gibi sözdizimini kullanın

Assert.That(myValue, Is.EqualTo(3), "value wasn't equal to 3"); 

Ben Assert.That() sözdizimi kullanır bkz NUnit ile hemen her örnek, ama en (Expect() daha mantıklı görünüyor En azından benim için) kodumdan belirli bir davranış beklediğimden.

NUnit ile AssertionHelper kullanmanın bir dezavantajı var mı, yoksa gerçekten bir tat/stil meselesine mi geliyor?

Şimdiden teşekkürler!

cevap

5

Her ikisi de aynı şeyi yapıyor ve her ikisi de IConstraint arabirimini uygulayan özel bir kısıtlama belirtmenizi sağlar. Benim bakış açımdan Assert() birazcık hafif, çünkü tüm test fikstürlerini özel bir sınıftan miras almanın zorunluluğu yoktur. Çünkü benim değişkenleri isim yolu

0

, benim testler genellikle çizgi ile sona:

Assert.That(actual, Is.EqualTo(expected)); 

IMO daha iyi (daha akıcı) den

Expect(actual, Is.EqualTo(expected)); 
1

AssertionHelper ana konudur okur Çok az insanın kullandığı, dolayısıyla yeni NUnit özellikleri ve kısıtlamaları buna eklenmemeye eğilimlidir. İhmal edildiği ve yaygın olarak kullanılmadığı için, NUnit team is considering removing it veya ayrı bir paket haline getirir.

Ekip, topluluğun kaldırılıp kaldırılmayacağına dair geri bildirim istiyor ve bu nedenle konuyla ilgili yorumda bulunmaktan çekinmeyin.

0

Rob Prouse, NUnit ekibinin AssertionHelper'ı kullanımdan kaldırdığı doğrudur. Bir güncellemede kullanıldığını öğrendiğimde yaklaşık 8 ay boyunca kullanıyordum ve bunu sürdürmeyi teklif ettim. Bu konudaki tartışma gerçekten yavaş ilerliyordu ve biraz sabırsızım, bu yüzden Nugen'de bulunan NUnit.StaticExpect'u yazdım ve kodunuzda bir "statik kullanarak" import ile AssertionHelper için bir değiştirme seçeneği sunuyor. Bir üretim projesini değiştirdim ve iyi çalışıyor.

Aynı zamanda farklı bir yolda da başlamıştım: Chai'u daha fazla anımsatan, ancak Jasmine'a daha yakın olan bir sözdizimi sunan NExpect. NEXpect oldukça kullanışlı bir durumda - bunu bir süredir kendi projelerimde kullanıyorum. Eğer aracılığıyla iddiaların evrimini gözlemlemek için kullanabileceğiniz bir demo project var.

  1. iddia {spesifik yöntem} (örn Assert.AreEqual)
  2. Assert.That ({değeri veya lambda}, {akım gergin kısıtlama})
  3. AssertionHelper kullanımı
  4. NUnit.StaticExpect kullanımı
  5. NExpect kullanımı

yanı sıra t örneklemelerinden NEXpect'in uzayabilirliği. Bu yardımcı olur umarım.

İlgili konular