1
正如標題所說,我正在編寫集成測試,並且希望測試並初始化IMapper對象作爲這些測試的一部分。在集成測試中使用IMapper
我使用XUnit作爲測試框架和Ninject來處理依賴注入。
我習慣於使用靜態AutoMapper方法,並且正在轉向使用IMapper接口,它是我的一個存儲庫構造函數中的一個參數。
我有一個繼承NinjectModule基類的DependencyRegistrar類。
我的負荷方法如下:
public override void Load()
{
var automapperConfig = new MapperConfiguration(cfg => { cfg.AddProfile<AutoMapperProfile>(); });
automapperConfig.AssertConfigurationIsValid();
var mapper = automapperConfig.CreateMapper();
Bind<IMapper>().ToConstant(mapper).InSingletonScope();
Bind<IUserManager>().To<UserManager>().InTransientScope();
Bind<IUserRepository>().To<UserRepository>().InTransientScope();
}
該模塊通過在API項目的NinjectWebCommon類加載,但很明顯,在集成測試中沒有加載。
ConfigurationSettingsEntity configurationSettings = new ConfigurationSettingsEntity(ConfigurationManager.AppSettings);
var modules = new INinjectModule[] { new DependencyResolution.DependencyRegistrar(configurationSettings) };
var kernel = new StandardKernel(modules);
所以,我的問題是,什麼是下載真正的映射器實現,這樣我可以傳遞到映射我的倉庫的構造,當我打造出了集成測試的最佳方式?
UserRepository tester = new UserRepository(mapper);
這對加載映射器非常有用。謝謝! –