我使用AssertConfigurationIsValid方法对我的映射配置文件进行单元测试。为了让它接受我的映射,我需要明确忽略未映射的目标属性。这会污染我的映射代码并使其可读性降低。由于只有通过 AssertConfigurationIsValid 的单元测试才需要这样做,所以我想将“忽略”代码移到同一个单元测试中。
考虑一些映射配置文件类中的以下映射代码:
CreateMap<SourceType, DestinationType>()
// here goes some actual mapping code:
.ForMember(dest => dest.DestMember, opt => opt.MapFrom(src => src.SourceMember))
// and then go the explicitly ignored unmapped dest members,
// just for AssertConfigurationIsValid to pass:
.ForMember(dest => dest.IgnoredMember, opt => opt.Ignore());
我想将后面的代码移动到单元测试方法中,所以它看起来像下面这样:
[TestMethod]
public void TestMappingConfiguration()
{
Mapper.AddProfile<MyProfile>();
Mapper.FindTypeMapFor<SourceType, DestinationType>()
.ForMember(dest => dest.IgnoredMember, opt => opt.Ignore());
Mapper.AssertConfigurationIsValid(MyProfile.Name);
}
Mapper 类中已经有 FindTypeMapFor 方法,但我找不到将忽略的属性添加到映射的好方法。这可能吗?