首页 > 其他分享 >.Net Core 单元测试获取配置文件节点值

.Net Core 单元测试获取配置文件节点值

时间:2023-11-29 15:44:20浏览次数:33  
标签:Core set 配置文件 get 单元测试 var new config public

 

单元测试类:

ServiceProvider _serviceProvider;
        IConfiguration _config;

        [SetUp]
        public void Setup()
        {
            _config = new ConfigurationBuilder()
            .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true })
            .Build();

            IServiceCollection services = new ServiceCollection();

            _serviceProvider = services.BuildServiceProvider();

        }

        [Test]
        public void IQueryRecordService_UnitTest()
        {
            var config = _config.Get<AppSettingOptions>();
            var demoModelCodes = config.DemoModelCodes;

            var list = new List<object>();

            if (demoModelCodes != null && demoModelCodes.Count > 0)
            {
                foreach (var item in demoModelCodes)
                {
                    list.Add(Query("阿司匹林8", "110101198708162325", "13145678901", item.ProductLine));
                }
            }

            Console.WriteLine(JsonConvert.SerializeObject(list));

            Assert.True(list.Count > 0);

        }

 

AppSettingOptions类:

public class AppSettingOptions : IAppSetting
    {
        public AppSettingOptions()
        {
            var configBuilder = new ConfigurationBuilder();
            configBuilder.AddJsonFile("appsettings.json");
            var config = configBuilder.Build();
            var section = config.GetSection("AppSettings");
            section.Bind(this);
        }

        public string DemoDB { get; set; }
        public bool OnePageReportCollectionSwitch { get; set; }
        public string[] OnePageReportCollectionFields { get; set; }
        public List<ProductModel> DemoModelCodes { get; set; }
    }


    public class ProductModel
    {
        public string ProductLine { get; set; }
        public string[] StrategyProducts { get; set; }
    }
IAppSetting类:
public interface ISingle
    {
    }

    public interface IScope
    {
    }

    public interface ITrans
    {
    }

public interface IAppSetting : ITrans { }

appsettings.json文件:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "AppSettings": {
    "DemoDB": "Server=;Database=;Integrated Security=SSPI;",
    "OnePageReportCollectionSwitch": false,
    "OnePageReportCollectionFields": [ "Rule_final_weight", "scoreafautofin", "scoreautofin", "scoreautosec", "scoreautocom", "scoreautolea" ],
    "DemogModelCodes": [
      {
        "ProductLine": "BackupLine",
        "StrategyProducts": [ "STR_BR0003543" ]
      }
    ]
  },
  "WebProxy": {
    "Host": "",
    "User": "",
    "Password": ""
  }
}

 

标签:Core,set,配置文件,get,单元测试,var,new,config,public
From: https://www.cnblogs.com/hofmann/p/17865021.html

相关文章

  • vue Vite3出现错误runtime-core.esm-bundler.js:6835 Uncaught TypeError: normalize
    原因是在引入Element-Plus的顺序在vue之前导致,重新调整下他们的顺序后,问题解决。importAppfrom'./App.vue'import{setupI18n}from'/@/i18n'import{setupRouter}from'/@/router'import{setupStore}from'/@/store'importbusfrom'/@......
  • 单元测试的实践与思考
    之前一直有一个想法:将测试过程的每个重要环节都进行拆解,然后详细说明这个环节重点要做的事情,为什么要做这些事,以及注意事项。在星球群里和几位同学聊到了这个事情,有同学提议可否将单元测试环节加进来,斟酌一番,觉得还是很有必要的,就有了今天的这篇文章。这篇文章,我会聊聊我对于单......
  • 【HMS Core】帐号服务中登录图标字体如何改变
    ​ 【关键词】登录按钮、字体 【问题描述】APP需要分发到香港地区,登录按钮图标如何改成繁体字,文档里只有中英文。https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/dev-specifications-0000001050048916​ 【解决方案】这个按钮后面的文字部分是支持各......
  • 【HMS Core】帐号服务报错907135000
    ​【问题描述】集成华为帐号服务,AccountAuthService登陆时,返回错误码:907135000 【解决方案】参考文档中错误码说明如下:​https://developer.huawei.com/consumer/cn/doc/development/hmscore-common-References/error-code-0000001050045846请从以下几个方面排查:1、请检查......
  • 在idea中无法查看org.springframework.cglib.core.Signature.java 源码
    一、现象1.点击ideaDownloadSource,没有变化;ChouseSource也无济于事。2.打开下载的源码包,惊奇的发现确实没有对应的源码。3.问题发生在哪儿?原来是这些包原本不属于spring,spring在编译的时候直接修改了包名称。 ......
  • java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.LoopTag问题的解决
    问题描述问题解决将这个依赖:改成这个依赖:......
  • Spring配置文件的魔法炼金术:如何制造容器化时代的完美配方
    前言基于现代服务的云原生十二要素理论,我们在采用容器化部署时,要保证同一个镜像可以满足不同环境的部署要求,而不是不同环境打包不同的镜像。本文档主要介绍一种基于spring框架的满足不同环境配置的编译打包方案,满足同一个镜像可以在环境分组下通过启动项配置实现不同环境的部署。......
  • nginx配置文件服务器及反向代理
    nginx配置文件服务器及反向代理最终配置如下:worker_processes1;events{worker_connections1024;}http{server{listen8888;add_header'Access-Control-Allow-Origin''*';server_nameexample.com;loc......
  • .gitignore配置文件
    #######################################################################BuildTools.gradle/build/!gradle/wrapper/gradle-wrapper.jartarget/!.mvn/wrapper/maven-wrapper.jar#######################################################################IDE......
  • Homebrew学习(六)之替换及重置homebrew、Homebred Core、Homebrew cask默认源
      替换及重置homebrew默认源中科大源替换官方源://替换brew.git:cd"$(brew--repo)"gitremoteset-urloriginhttps://mirrors.ustc.edu.cn/brew.git//替换homebrew-core.git:cd"$(brew--repo)/Library/Taps/homebrew/homebrew-core"gitremoteset-url......