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

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • Droid Life

    Droid Life

    17 Kasım 2009
  • njhaley

    njhaley

    24 NİSAN 2006