Làm cách nào tốt nhất để thiết lập tính năng mô phỏng hàm Map trong AutoMapper.Mock AutoMapper Mapper. Gọi điện bằng cách sử dụng Moq
Tôi trích xuất giao diện IMapper để tôi có thể thiết lập kỳ vọng cho giao diện đó. Người lập bản đồ của tôi có phụ thuộc, vì vậy tôi phải chuyển những người đó vào người lập bản đồ.
Điều gì xảy ra khi tôi tạo 2 trường hợp của lớp bản đồ của tôi, với 2 lần triển khai phụ thuộc khác nhau? Tôi cho rằng cả hai người lập bản đồ sẽ sử dụng cùng một cá thể phụ thuộc, vì bản đồ AutoMapper là tĩnh. Hoặc AutoMapper thậm chí có thể ném một ngoại lệ vì tôi cố gắng thiết lập 2 bản đồ khác nhau với cùng một đối tượng.?
Làm cách nào tốt nhất để giải quyết vấn đề này?
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);
}
}