如何获取NUnit的ExpectedException属性来检测异常的基类?

时间:2011-08-16 22:48:05

标签: unit-testing nunit nunit-2.5 tibco-ems

使用NUnit 2.5.10,我正在测试一些引用包含基本异常类型的库的代码。 TIBCO.EMS.NamingException,其他异常类型派生自TIBCO.EMS.InvalidNameExceptionTIBCO.EMS.NameNotFoundException

我想使用NUnit的ExpectedException属性来识别何时抛出了从TIBCO.EMS.NamingException派生的任何子类异常。

我可以轻松检测何时抛出特定异常:

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

但是我想以某种方式让NUnit“期望”是否抛出了TIBCO.EMS.NamingException的任何子类。

直接尝试不起作用:

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

有什么想法吗?

1 个答案:

答案 0 :(得分:9)

来自NUnit documentation

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