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

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

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

1 ответ

Решение

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

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

Насмешки обычно используются для:

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

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

то есть:

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

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

Другие вопросы по тегам