Как преобразовать сигнатуру выражения, чтобы она применялась с помощью `It.IsAny` из` Moq` - PullRequest
0 голосов
/ 10 июня 2019

После этого ответ Я пытался что-то похожее и издевался над интерфейсом:

public interface IGetRepository<TEntity>
{
    IEnumerable<TEntity> Get(
        Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null);
}

Это мой метод модульного тестирования:

IEnumerable<EventModel> expectedList = return new List<MyModel>() 
{
    new MyModel()
    {
        Id = 0
    }
}

using (var _mock = AutoMock.GetLoose())
{
    var repositoryMock = _mock.Mock<IGenericRepository<EventModel>>();
    repositoryMock
        .Setup(items => items.Get(It.IsAny<Expression<Func<EventModel, bool>>>))
        .Returns(() => expectedList);
}

Но It.IsAny<Expression<Func<EventModel, bool>>> создает сообщение об ошибке:

не может преобразовать из 'группы методов' в 'Выражение>'

Уже прочитаны следующие подобные вопросы: 1 , 2 , 3 , поэтому я полагаю, что моя проблема в другой подписи, если да как мне преобразовать эту подпись, чтобы она применялась с It.IsAny изmoq

1 Ответ

1 голос
/ 10 июня 2019

Пожалуйста, попробуйте это

var expectedList = new List<EventModel>()
            {
                new EventModel()
                {
                    Id = 0
                }
            };

            {
                var repositoryMock = new Mock<IGetRepository<EventModel>>();
                repositoryMock
                    .Setup(items => items.Get(It.IsAny<Func<IQueryable<EventModel>, IOrderedQueryable<EventModel>>>()))
                    .Returns(() => expectedList);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...