AutoMapper で Map 関数のモック期待値を設定する最良の方法は何ですか?
IMapper インターフェイスを抽出して、そのインターフェイスの期待値を設定できるようにします。私のマッパーには依存関係があるため、それらをマッパーに渡す必要があります。
2 つの異なる依存関係の実装を使用して、マッパー クラスの 2 つのインスタンスを作成するとどうなりますか? AutoMapper マップは静的であるため、両方のマッパーが同じ依存関係インスタンスを使用すると想定しています。または、同じオブジェクトで 2 つの異なるマップをセットアップしようとすると、AutoMapper が例外をスローすることさえあります。
これを解決する最良の方法は何ですか?
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);
}
}