Новая версия NUnit 3.x больше не поддерживает ExpectedExceptionAttribute
. Вместо этого есть Assert.Throws<MyException>()
. Вероятно, более логичная концепция. Но замены старому доброму MatchType
найти не удалось - есть ли? MyException
может быть выброшен с рядом параметров, в NUnit 2.x я мог бы сравнить сообщение об исключении для включения определенного фрагмента текста, чтобы узнать, какой параметр был использован (и, конечно же, у меня не будет десятков классов исключений вместо просто логического). Как с этим справиться с помощью NUnit 3.x? Намеков найти не удалось.
С NUnit 2.x я бы сделал следующее:
[Test]
[ExpectedException(ExpectedException=typeof(MyException), ExpectedMessage="NON_EXISTENT_KEY", MatchType=MessageMatch.Contains)]
public void DeletePatient_PatientExists_Succeeds()
{
Person p = new Person("P12345", "Testmann^Theo", new DateTime(1960, 11, 5), Gender.Male);
MyDatabase.Insert(p);
MyDatabase.Delete(p.Key);
// Attemp to select from a database with a non-existent key.
// MyDatabase throws an exception of type MyException with "NON_EXISTENT_KEY" within the message string,
// so that I can distinguish it from cases where MyException is thrown with different message strings.
Person p1 = MyDatabase.Select(p.Key);
}
Как я могу сделать что-то подобное с NUnt 3.x?
Пожалуйста, примите во внимание, что я имею в виду: средств, которые предоставляет NUnit, недостаточно для распознавания параметров, с которыми было сгенерировано исключение, поэтому это другой вопрос.