单元测试类:
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": ""
}
}