¿Cuál es la mejor manera de configurar una expectativa de simulación para la función de mapa en AutoMapper?Mock AutoMapper Mapper.Map llamada usando Moq
Extraigo la interfaz de IMapper para que pueda configurarlo para esa interfaz. Mi mapeador tiene dependencias, así que tengo que pasarlas al mapeador.
¿Qué sucede cuando creo 2 instancias de mi clase mapeador, con 2 implementaciones de dependencia diferentes? Supongo que ambos mapeadores usarán la misma instancia de dependencia, ya que el mapa AutoMapper es estático. O AutoMapper incluso podría arrojar una excepción porque trato de configurar 2 mapas diferentes con los mismos objetos.
¿Cuál es la mejor manera de resolver esto?
public interface IMapper {
TTarget Map<TSource, TTarget>(TSource source);
void ValidateMappingConfiguration();
}
public class MyMapper : IMapper {
private readonly IMyService service;
public MyMapper(IMyService service) {
this.service = service
Mapper.CreateMap<MyModelClass, MyDTO>()
.ForMember(d => d.RelatedData, o => o.MapFrom(s =>
service.getData(s.id).RelatedData))
}
public void ValidateMappingConfiguration() {
Mapper.AssertConfigurationIsValid();
}
public TTarget Map<TSource, TTarget>(TSource source) {
return Mapper.Map<TSource, TTarget>(source);
}
}