SORU
22 EKİM 2009, PERŞEMBE


NUnit: İddia.Atar

Nasıl Assert.Throws özel tip ve gerçek mesaj ifadeler savunmak için kullanırım.

Şöyle bir şey:

Assert.Throws<Exception>(
    ()=>user.MakeUserActive()).WithMessage("Actual exception message")

Test yöntemi aynı tip, farklı mesajlarla birden çok mesaj atar, ve doğru mesajı içeriğe bağlı olarak atılan test etmek için bir yol istiyorum.

CEVAP
22 EKİM 2009, PERŞEMBE


Assert.Throws dışı karşılarında sağlayan atılmış olan bir özel durum döndürür.

var ex = Assert.Throws<Exception>(() => user.MakeUserActive());
Assert.That(ex.Message, Is.EqualTo("Actual exception message"));

Hiçbir istisnası atılır, ya da yanlış türde bir özel durum oluşursa, Assert.Throws ilk onaylama işlemi başarısız olur. Ancak eğer doğru türde bir özel durum sonra artık değişken olarak kaydettiğiniz gerçek dışı iddia edebilirsiniz.

Özel durum iletisi dışındaki şeyler hakkında iddia edebilirsiniz bu modeli kullanarak, örneğin ArgumentException ve türevleri olması durumunda, parametre adının doğru olduğunu iddia edebilirsiniz:

var ex = Assert.Throws<ArgumentNullException>(() => foo.Bar(null));
Assert.That(ex.ParamName, Is.EqualTo("bar"));

Ayrıca iddia: bu işin için akıcı bir API kullanabilirsiniz

Assert.That(() => foo.Bar(null), 
Throws.Exception
  .TypeOf<ArgumentNullException>()
  .With.Property("ParamName")
  .EqualTo("bar"));

Özel durum iletileri iddia zaman küçük bir ipucu atılan mesaj beklenen kültür kullandığından emin olun SetCultureAttribute test yöntemi süslemek için. Eğer bu kaynaklar yerelleştirme için izin vermek gibi bir durum mesajlarını depolamak devreye giriyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006
  • World Science Festival

    World Scienc

    1 Mayıs 2008