2015-05-28 54 views
4

我希望能够遍历映射为源(或目标)的每种类型的程序集,并验证映射配置是否有效。这是一个相当大的项目,广泛使用AutoMapper,当开发人员引入无效的映射关系时,我希望这个单元测试能够中断。查看GetAllMappedTypes,GetPropertyMaps的集合,但我似乎无法获得检查有效配置的方法。我们使用AutoMapper的v4。查找并验证所有自动映射器映射

回答

3

这样做的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(); 
    } 
} 
+0

对不起,但我在你提供的nUnit例子中缺少一些东西。我没有看到任何类型的MappingConfig。你能帮我填补空白吗?应该提到,我在这里学习AutoMapper。 – Ron

+0

我简化了代码并发布了我正在使用的mappingconfig。 –