4
我希望能够遍历映射为源(或目标)的每种类型的程序集,并验证映射配置是否有效。这是一个相当大的项目,广泛使用AutoMapper,当开发人员引入无效的映射关系时,我希望这个单元测试能够中断。查看GetAllMappedTypes,GetPropertyMaps的集合,但我似乎无法获得检查有效配置的方法。我们使用AutoMapper的v4。查找并验证所有自动映射器映射
我希望能够遍历映射为源(或目标)的每种类型的程序集,并验证映射配置是否有效。这是一个相当大的项目,广泛使用AutoMapper,当开发人员引入无效的映射关系时,我希望这个单元测试能够中断。查看GetAllMappedTypes,GetPropertyMaps的集合,但我似乎无法获得检查有效配置的方法。我们使用AutoMapper的v4。查找并验证所有自动映射器映射
这样做的automapper代码:
<Perform mapping configuration work>
Mapper.AssertConfigurationIsValid()
如果你使用NUnit,你可以这样做:
[TestFixture]
public class when_validating_mapping_config
{
[Test]
public void then_should_assert_mapping_configuration_is_valid()
{
// Arrange
MappingConfig.InitializeMappings(); // this is just however you initialize your mappings.
// Act
// Assert
Mapper.AssertConfigurationIsValid();
}
}
的mappingconfig是我多么初始化我的映射。我在MVC中使用automapper,因此我所有的静态配置都发生在Global.asax.cs中。
public static class MappingConfig
{
public static void InitializeMappings()
{
Mapper.Initialize(configuration => Configure(configuration));
}
public static void Configure(IConfiguration configuration)
{
configuration.CreateMap<Model, ViewModel>()
configuration.Seal();
}
}
对不起,但我在你提供的nUnit例子中缺少一些东西。我没有看到任何类型的MappingConfig。你能帮我填补空白吗?应该提到,我在这里学习AutoMapper。 – Ron
我简化了代码并发布了我正在使用的mappingconfig。 –