Как автоматически смоделировать контейнер (например, IList) в MOQ без расширений / contrib - PullRequest
4 голосов
/ 23 декабря 2011

Интересно, можно ли автоматически смоделировать контейнер в MOQ без каких-либо дополнений в библиотеке MOQ.У меня проблемы с поиском чистого способа автоматической блокировки IList.

Заранее спасибо!

1 Ответ

7 голосов
/ 23 декабря 2011

Ответ на ваш вопрос: Нет.

Вам действительно нужно издеваться над IList?

Муки обычно используются для:

  • Чтобы проверить поведение (через ожидания), а не результаты.
  • Абстрагирование от сложных или тяжелых зависимостей.
  • Чтобы упростить код тестов путем простого возврата нужного значения.
  • Чтобы протестировать только тестируемый класс.

Например, вы можете смоделировать репозиторий с доступомбаза данных.Обычно ваши тесты не будут макетировать список, а вместо этого имитируемый объект вернет список с данными, необходимыми для вашего теста.

т.е.:

var aList = new List<int>() { 1, 2, 3, 4, 5 };
var mockService = new Mock<IMyService>();
mockService.Setup(mock => mock.GetFooList()).Returns(aList);

Это может помочь прояснить ваш вопрос.если вы указываете, почему вам нужно смоделировать контейнер.

...