Как вы издеваетесь над AutoMapper MapTo? - PullRequest
0 голосов
/ 21 февраля 2019

Я видел много вопросов о модульном тестировании автомаппера 'map', но как вы смеетесь над MapTo?Это ожидает IMapper как его объект.Итак, это то, что я до сих пор:

private Mock<IMapper> _mapper;

[TestInitialize]
public void Init()
{
    _mapper = new Mock<IMapper>();

    //other stuff initialised.
}

[TestMethod]
public void MyTest()
{
    _mapper.Setup(m => m.MapTo<IList<Something>>(_mapper.Object)).Returns(myList);

    //setup repository etc.
}

Это выдает ошибку «Неверная установка для метода расширения ...».Итак, как мне сделать вызов «MapTo»?

Просто чтобы уточнить, я знаю, что могу использовать актуальную версию картографа и создавать реальные карты, такие как:

private MapperConfiguration CreateMaps()
{
    return new MapperConfiguration(mc =>
   {
       mc.CreateMap<MyEntity, MyObject>();
       mc.CreateMap<MyOtherEntity, MyOtherObject>();
   });
}

_mapper = new Mapper(CreateMaps());

Тем не менее, мне все еще было любопытно, как издеваться над этим.Кажется, это легко сделать с помощью Map, но не MapTo

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

нет?Это того не стоит.Относитесь к этому как к JSON.NET.

0 голосов
/ 21 февраля 2019

Я не уверен, что ты можешь.MapTo(...) - это в основном статический метод, как и любой другой, с необычным синтаксисом, который делает его похожим на часть объекта в вашей IDE.

Поскольку это на самом деле не часть объекта, над которым вы издеваетесь, ваши возможности ограничены.Лучше всего взглянуть на код для MapTo(...);, может быть, внутренности являются насмешливыми.

...