Как я могу получить атрибут ExpectedException NUnit для обнаружения базового класса исключения? - PullRequest
6 голосов
/ 17 августа 2011

Используя NUnit 2.5.10, я тестирую некоторый код, который ссылается на библиотеку, содержащую базовый тип исключения. TIBCO.EMS.NamingException, из которого происходят другие типы исключений, в частности TIBCO.EMS.InvalidNameException и TIBCO.EMS.NameNotFoundException.

Я хотел бы использовать атрибут ExpectedException в NUnit, чтобы распознавать, когда выбрасывается любое подклассовое исключение, полученное из 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 Ответ

9 голосов
/ 17 августа 2011

Из NUnit документации :

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