6

使用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))]

有任何想法吗?

4

1 回答 1

9

NUnit 文档

// Allow both ApplicationException and any derived type
Assert.Throws( Is.InstanceOf( typeof(ApplicationException), code );
Assert.Throws( Is.InstanceOf<ApplicationException>(), code );
于 2011-08-16T23:15:35.733 回答