Новая версия NUnit 3.x не поддерживает ExpectedExceptionAttribute
. Вместо этого есть Assert.Throws<MyException>()
. Вероятно, это более логичная концепция. Но мне не удалось найти замену старым хорошим MatchType
- есть ли какие-нибудь? MyException
может быть выбрано с несколькими параметрами, в NUnit 2.x я мог бы сравнить сообщение об исключении для содержимого определенного фрагмента текста, чтобы узнать, какой параметр был использован (и, конечно же, у меня не будет десятков классов исключений а не просто логичный). Как это можно обрабатывать с помощью NUnit 3.x? Мне не удалось найти намек.Замена для MatchType?
С 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, недостаточны для распознавания параметров, с которыми было выбрано исключение, так что это другой вопрос.
Это действительно поможет, если вы продемонстрируете ясный пример теста, который вы пытаетесь выполнить. На данный момент мне неясно. –
Пожалуйста, отредактируйте свой вопрос с помощью [mcve] вместо того, чтобы помещать его в комментарии. –
Возможный дубликат [Должен ли я использовать метод Assert.Throws nunit или атрибут Expected Exception?] (Http://stackoverflow.com/questions/15014461/should-i-use-nunits-assert-throws-method-or-expected- exception-attribute) –