Как сформировать список подделок с помощью Moq - PullRequest
4 голосов
/ 16 марта 2012

Я хочу создать список подделок без указания всех свойств поддельного объекта, используя Moq:

var mock = Mock.Of<ICalendar>(x =>
    x.GetSchedules() == new List<ISchedule> 
    {
        // I don't want specify explicitly title and other properties
        Mock.Of<ISchedule>(y => y.Title == "fdfdf" && y.Start == DateTime.Today)
    });

List<ISchedule> s = mock.GetSchedules();

Можно ли указать «правила» вместо свойств жесткого кода? И можно ли установить желаемый номер товара?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 17 марта 2012

Надеюсь, это поможет:

int numberOfElements = 10;
var mock = Mock.Of<ICalendar>(x =>
           x.GetSchedules() == Enumerable.Repeat(Mock.Of<ISchedule>(), numberOfElements).ToList());
1 голос
/ 16 марта 2012

Посмотрите на AutoMoq и посмотрите, будет ли это то, что вы хотите.

1 голос
/ 16 марта 2012

Вы можете создать абстрактный класс ScheduleMockBuilder, который создает Mock of ISchedule с некоторыми случайными данными. Затем вызывайте этого строителя столько раз, сколько вам нужно элементов в списке.

Проверьте шаблон Builder для получения дополнительной информации.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...