Как автоматически смоделировать контейнер (например, 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);
Это может помочь уточнить ваш вопрос, если вы укажете, почему вам нужно смоделировать контейнер.