对于初学者来说,我使用这个模块:
public class AutoMapperModule : NinjectModule
{
public override void Load()
{
Bind<ITypeMapFactory>().To<TypeMapFactory>();
foreach (var mapper in MapperRegistry.AllMappers())
{
Bind<IObjectMapper>().ToConstant(mapper);
}
Bind<AutoMapper.ConfigurationStore>().ToSelf().InSingletonScope().WithConstructorArgument("mappers", ctx => ctx.Kernel.GetAll<IObjectMapper>());
Bind<IConfiguration>().ToMethod(ctx => ctx.Kernel.Get<AutoMapper.ConfigurationStore>());
Bind<IConfigurationProvider>().ToMethod(ctx => ctx.Kernel.Get<AutoMapper.ConfigurationStore>());
Bind<IMappingEngine>().To<MappingEngine>();
}
}
我有我的所有地图引导程序类
public static void Configure(IKernel kernel)
{
Mapper.Initialize(map => map.ConstructServicesUsing(t => kernel.Get(t)));
}
我有一个访问数据库,需要注入的仓库解析器。 它的工作原样,但我无法弄清楚如何得到它的单元测试和IMappingEngine工作。
public HomeController(IMappingEngine mappingEngine)
{
_mappingEngine = mappingEngine;
}
因为没有地图存在_mappingEngine.Map抛出异常。 Mapper.Map工作。
我在想什么? 如何让我的引导程序与单元测试工作,所以,在我的解析器的版本库使用假/模拟库?