2011-08-16 16 views
6

NUnit 2.5.10'u kullanarak, bir temel özel durum türü içeren bir kütüphaneye başvuran bazı kodları test ediyorum. Diğer istisna tiplerinden türetilen TIBCO.EMS.NamingException, özellikle TIBCO.EMS.InvalidNameException ve TIBCO.EMS.NameNotFoundException.Bir istisnanın temel sınıfını algılamak için NUnit ExpectedException özniteliğini nasıl alabilirim?

TIBCO.EMS.NamingException'dan türeyen herhangi bir alt sınıf istisnanın ne zaman atıldığını tanımak için NUnit'in ExpectedException özniteliğini kullanmak istiyorum. Belirli özel durum edildiğinde

kolayca algılayabilir:

[ExpectedException("TIBCO.EMS.NameNotFoundException")] 
     or 
[ExpectedException(Typeof(TIBCO.EMS.InvalidNameException))] 

Ama ben bir şekilde NUnit yapmak TIBCO.EMS.NamingException herhangi alt sınıf atılmış olup olmadığını "beklemek" istiyoruz.

çalışmıyor doğrudan çalışılıyor:

[ExpectedException("TIBCO.EMS.NamingException")] 
    or 
[ExpectedException(typeof(TIBCO.EMS.NamingException))] 

Herhangi bir fikir? NUnit documentation itibaren

cevap

9

:

// Allow both ApplicationException and any derived type 
Assert.Throws(Is.InstanceOf(typeof(ApplicationException), code); 
Assert.Throws(Is.InstanceOf<ApplicationException>(), code); 
+2

mükemmel çalıştı ki! Daha önce pek çok kez kullanmış olduğum ExpectedException özelliğinden öylesine çok etkilendim ki, belgelerin farklı bir bölümüne geri dönmeyi özledim. Bir eldiven yapmaya çalışıyordum, bot görevini yapıyordum! Bana faydalı bir yeni numara öğrettiğin için teşekkürler @silev! –

+1

Harika, rica ederim! Ayrıca, Assert.Throws () genel sürümünü ve çok yararlı Assert.DoesNotThrow (() => {...}) – sll

İlgili konular