2009-09-06 6 views
5

Я пытаюсь использовать nunits новый способ обработки исключений, но мне сложно найти информацию об этом и как использовать его с moq.Как выполнять обработку исключений с nunit и moq?

У меня есть сейчас moq, который генерирует исключение по издеваемому методу, но я не знаю, как использовать nunit, чтобы поймать его и посмотреть на него.

ответ

14

Существует несколько способов сделать это; Я использую Assert.Throws.

var exception = Assert.Throws<YourTypeOfException>(()=> Action goes here); 

например.

var exception = Assert 
       .Throws<ArgumentNullException>(()=> new ChimpPuncher(null)); 

Затем вы можете запросить объект исключения, если хотите, например.

Assert.That(exception.Message, Text.Contains("paramname"); 
0

Почему вы не можете заключить вызов издеваемого метода в блок try/catch и улавливать конкретное исключение?

2

Самый лучший способ упомянуть: [ExpectedException(typeof(ApplicationException))] над методом испытания.

+0

Проблема с этим подходом заключается в том, что если этот тип исключения генерируется _any_ частью метода, украшенным атрибутом ExpectedException, тест пройдет. Использование механизма Assert.Throws <> уменьшает площадь поверхности, поскольку исключение должно быть выбрано внутри метода, выполняемого им. –

 Смежные вопросы

  • Нет связанных вопросов^_^