Как сделать так, чтобы свойство генерировало исключение на множестве с макетом Moq? - PullRequest
3 голосов
/ 26 августа 2011

Я работаю над тестированием некоторого устаревшего кода, и мы используем Moq 4 для нашей изоляции.Есть класс, у которого есть свойство с проверкой в ​​компоненте set {}.Мне нужно, чтобы оно вызывало исключение при вызове одного из моих тестов, но я не могу заставить его это сделать.Я пробовал следующее:

fakeNetwork
  .Setup(n => n.IpAddress)
  .Throws(new SystemNotFoundException("1.1.1.1");

Нет исключений.

fakeNetwork
  .SetupSet(n => n.IpAddress)
  .Throws(new SystemNotFoundException("1.1.1.1");

Это использование устарело.Замена - .SetupSet (Action), но я не уверен, как сделать действие, которое вызывает исключение.Мы рассматриваем предупреждения как ошибки, поэтому я не знаю, сработает ли это в любом случае, но поскольку я все равно не смогу использовать устаревшую версию, я не пытался отключить проверку.

Любые советы будут очень полезны!

1 Ответ

6 голосов
/ 26 августа 2011

Адаптировано из Moq документов

mock.SetupSet(foo => foo.Name = "foo").Throws<ArgumentException>();
...