В моем модульном тесте я хочу проверить свой метод, который я создал для фильтрации данных из MongoDB.Cant Mock my Get() функция из моего репозитория - MongoDB.Driver 2.2.3
Когда я пытаюсь дразнить свою функцию, как это:
_repo.GetFluent<Location>((Arg.Any<Expression<Func<Location, bool>>>()))
.Returns(x => locations.Where(x.Arg<Expression<Func<Location, bool>>>()).ToList());
Он подчеркивает Returns
говоря:
Невозможно преобразовать лямбда-выражения.
Раньше, когда я работал на моем простом проекте с помощью драйвера 2.0.0 MongoDB у меня не было никаких проблем, насмешливый мою Get()
функцию, как это, но теперь с новым драйвером 2.2.3 У меня есть ошибка насмешливый это. Есть ли другой способ?
Я видел, что новый драйвер использует IFindFluent
, а более старый я использовал MongoCursor
для получения моих данных.
Должен ли я высмеивать IFindFluent
как-то?
Это мой код для GetFluent()
метода
public IFindFluent<TEntity, TEntity> GetFluent<TEntity>(System.Linq.Expressions.Expression<Func<TEntity, bool>> filter = null) where TEntity : class, new()
{
var collection = GetCollection<TEntity>();
if (filter == null)
{
var emptyFilter = Builders<TEntity>.Filter.Empty;
return collection.Find(emptyFilter);
}
else
{
var filterDefinition = Builders<TEntity>.Filter.Where(filter);
return collection.Find(filterDefinition);
}
}
Можете ли вы вставить код метода GetFluent от вас MongoRepository, пожалуйста? – Jerome2606