Was ist der beste Weg, ein Mock expection für die Map-Funktion in AutoMapper einrichten.Mock AutoMapper Mapper.Map Anruf mit Moq
ich extrahieren Sie die IMapper-Schnittstelle, so kann ich das Setup für diese Schnittstelle erwartet. Mein Mapper hat Abhängigkeiten, also muss ich diese dem Mapper übergeben.
Was passiert, wenn ich zwei Instanzen meiner Mapper-Klasse erstellen, mit 2 verschiedenen Abhängigkeits Implementierungen? Ich nehme an, dass beide Mapper dieselbe Abhängigkeitsinstanz verwenden, da die AutoMapper-Map statisch ist. Oder AutoMapper könnte sogar eine Ausnahme auslösen, weil ich versuche, zwei verschiedene Maps mit denselben Objekten zu erstellen.
Was ist der beste Weg, dies zu lösen?
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);
}
}