У меня есть следующий код в модульном тесте. Но он возвращает ошибку, указанную при запуске.Невозможно лить объект типа 'System.Collections.Generic.List`1 []' для ввода 'System.Linq.IQueryable`1 []'
var leaveTypesList = new List<LeaveType>() { leaveType1, leaveType2, leaveType3 };
var leaveTypesQueryable = leaveTypesList.AsQueryable();
mockLeaveTypeRepository.Setup(r => r.GetLeaveTypes()).Returns(leaveTypesQueryable);
var leaveTypeDtos = service.GetLeaveTypes();
Ошибка получена из последней строки, когда результаты возвращаются из службы.
Код услуги для перечисленного ниже метода GetLeaveTypes
, который представляет собой простой доступ к репозиторию.
public IQueryable<LeaveTypeDto> GetLeaveTypes()
{
//return Mapper.Map<IQueryable<LeaveTypeDto>>(leaveTypeRepository.GetLeaveTypes());
return leaveTypeRepository.GetLeaveTypes().ProjectTo<LeaveTypeDto>();
}
код Репозиторий также простое возвращение к IQueryable
видов отпусков.
public IQueryable<LeaveType> GetLeaveTypes()
{
return dbContext.LeaveType.Where(lt => lt.IsActive);
}
Просто не могу понять, что здесь не так. Есть идеи?
Вы проверили, что 'leaveTypeRepository.GetLeaveTypes()' фактически возвращает 'IQueryable'? –
Какой тип возвращаемого значения 'leaveTypeRepository.GetLeaveTypes()'? –
Замените ключевое слово var на типы, поскольку они неясны для читателя. – Kaido