2020年11月30日星期一

.NetCore测试单元使用AutoFac依赖注入

1.使用xUnit测试项目创建一个测试工程,建一个DependencyInjection文件夹里面添加DI_Test.cs文件

public class DI_Test {  public IContainer DICollections()  {  //获取项目路径   var basePath = Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath;       //日志             ILoggerFactory loggerFactory = new LoggerFactory();   IServiceCollection services = new ServiceCollection();   //读取配置文件   IConfiguration configuration = new ConfigurationBuilder().AddJsonFile($"{basePath}appsettings.json", false, true).Build();   services.AddSingleton(configuration);   //注入NLog日志   services.AddLogging(builder=>    {    builder.AddConfiguration(configuration.GetSection("Logging")).AddNLog("NLog.config").AddDebug().AddConsole();   });   //添加到实体   GlobalContext.Configuration = configuration;   //获取配置实体   GlobalContext.AppSettings = configuration.GetSection("Appsettings").Get<AppSettings>();			//添加异常过滤   services.AddControllers(options =>   {    options.Filters.Add<ExceptionAttribute>();//全局异常过滤器   }).AddControllersAsServices();			   //注入redis   CacheStorageFactory.InitCacheStorage(new RedisCacheStorageProvider(GlobalContext.AppSettings.RedisServerString));			//注入数据库   services.AddTransient<IActiveTransactionProvider>(o => new ActiveTransactionProvider(GlobalContext.AppSettings.DbConnetion));   //实例化 AutoFac 容器 使用反射获取所有实现接口的类注入DI容器   var container = new ContainerBuilder();   container.RegisterModule<Framework.IOC.AutoFacModule>();   container.Populate(services);   //使用已进行的组件登记创建新容器   var ApplicationContainer = container.Build();   return ApplicationContainer;  } }`

2.添加一个Service测试文件,使用Autofac调用方法类

public class AddressServiceTest {  private readonly IAddressService addressService; //商品分类接口  public AddressServiceTest()  {   var conllections = new DI_Test().DICollections();   addressService = conllections.Resolve<IAddressService>();  }  /// <summary>  /// 获取地址列表  /// </summary>  [Fact(DisplayName = "获取地址列表")]  public async void GetProductCategory()  {   var response = await addressService.PageList(new Models.RequestModels.AddressPageListRequest { UserId= 86,MerchantId=47 });   Assert.NotNull(response);  } }

注意: Framework.IOC.AutoFacModule 类为自定义的Autofac注入的实现类,读者可以根据自己的代码注入,本文仅供参考学,不提供具体实现代码。









原文转载:http://www.shaoqun.com/a/494383.html

出口易:https://www.ikjzd.com/w/1317

asiabill:https://www.ikjzd.com/w/1014

燕文物流:https://www.ikjzd.com/w/2229


1.使用xUnit测试项目创建一个测试工程,建一个DependencyInjection文件夹里面添加DI_Test.cs文件publicclassDI_Test{publicIContainerDICollections(){  //获取项目路径varbasePath=Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.App
r标:r标
心怡:心怡
顺德长鹿农庄夜场有什么玩的?佛山长鹿农庄夜场票多少钱?:顺德长鹿农庄夜场有什么玩的?佛山长鹿农庄夜场票多少钱?
去丽江旅游会不会出现高原反应?该如何应对?:去丽江旅游会不会出现高原反应?该如何应对?
带你掌握爆款listing核心秘密:带你掌握爆款listing核心秘密

没有评论:

发表评论