Если вы (юнит) тестируете свой сервисный уровень, тогда вы должны насмехаться над своими репозиториями.Вы можете создать фиктивный репозиторий со статическим списком объектов, представленных как IQueryable.
Таким образом, когда вы вызываете Count (), он возвращает счетчик вашего статического списка, что вы можете надежно утверждать.
Обновление
Моя ошибка, я предположил из этой строки
Я должен проверить количество элементов коллекции в моей служебной логике
ТоВы хотели проверить эту логику своей службы.
Ваш приведенный выше код выглядит так, как будто вы возвращаете IQueryable.Поэтому, как только вы позвоните по номеру Count()
или ToList()
(по сути, ко всему, что перечисляет IQueryable), вы попадете в базу данных.
Так что либо измените службу, чтобы она вернула IList<T>
, либо измените код, указанный ниже:
EventService eventService=container.Resolve<EventService>();
IEnumerable<Event> events = eventService.GetAll().ToList();
if(events.Count()>0) { ...do something... }
Вы попадете в базу данных при вызове ToList()
, но не при вызове Count()
, когда работаете с коллекцией в памяти.