Qual è il modo migliore per impostare un'aspettativa di simulazione per la funzione Mappa in AutoMapper.Mock AutoMapper Mapper.Mappa chiamata utilizzando Moq
ho estrarre l'interfaccia IMapper così posso installare aspetta per tale interfaccia. Il mio mappatore ha dipendenze, quindi devo passare quelle al mappatore.
Cosa succede quando creo 2 istanze della mia classe mapper, con 2 diverse implementazioni di dipendenze? Suppongo che entrambi i mappatori utilizzeranno la stessa istanza di dipendenza, poiché la mappa di AutoMapper è statica. Oppure AutoMapper potrebbe lanciare un'eccezione perché cerco di impostare 2 mappe diverse con gli stessi oggetti.
cosa è il modo migliore per risolvere questo?
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);
}
}