如何使用 xUnit 在 .Net Core 中模拟配置文件
How to Mock config file in .Net Core with xUnit
我想模拟 .NET Core 中的配置文件值。
我正在使用 xUnit 进行单元测试。我正在使用应用程序洞察力。
我使用配置文件进行配置。现在我想在我的单元测试用例中模拟 .cs 配置文件。
var configurationPackage = statelessServiceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config");
var appInsightsSection = configurationPackage.Settings.Sections["AppInsightsConfig"];
var appInsightsInstrumentationKey = appInsightsSection.Parameters["AppInsights_InstrumentationKey"].Value;
var configurationPackage
即将 null 进行测试。
所以我想嘲笑这个
statelessServiceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config")
您可以使用 OSS/Nuget 包 'ServiceFabric.Mocks'。
例如,检查 this 单元测试。
相关代码:
using static ServiceFabric.Mocks.MockConfigurationPackage;
[..]
//build ConfigurationSectionCollection
var configSections = new ConfigurationSectionCollection();
//Build ConfigurationSettings
var configSettings = CreateConfigurationSettings(configSections);
//add one ConfigurationSection
ConfigurationSection configSection = CreateConfigurationSection("AppInsightsConfig");
configSections.Add(configSection);
//add one Parameters entry
ConfigurationProperty parameter = CreateConfigurationSectionParameters("AppInsights_InstrumentationKey", "some value");
configSection.Parameters.Add(parameter);
//Build ConfigurationPackage
ConfigurationPackage configPackage = CreateConfigurationPackage(configSettings, nameof(configPackage.Path));
var context = new MockCodePackageActivationContext(
"fabric:/MockApp",
"MockAppType",
"Code",
"1.0.0.0",
Guid.NewGuid().ToString(),
@"C:\logDirectory",
@"C:\tempDirectory",
@"C:\workDirectory",
"ServiceManifestName",
"1.0.0.0")
{
ConfigurationPackage = configPackage
};
[..]
//pass the `MockCodePackageActivationContext` to the Service constructor.
我想模拟 .NET Core 中的配置文件值。
我正在使用 xUnit 进行单元测试。我正在使用应用程序洞察力。
我使用配置文件进行配置。现在我想在我的单元测试用例中模拟 .cs 配置文件。
var configurationPackage = statelessServiceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config");
var appInsightsSection = configurationPackage.Settings.Sections["AppInsightsConfig"];
var appInsightsInstrumentationKey = appInsightsSection.Parameters["AppInsights_InstrumentationKey"].Value;
var configurationPackage
即将 null 进行测试。
所以我想嘲笑这个
statelessServiceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config")
您可以使用 OSS/Nuget 包 'ServiceFabric.Mocks'。
例如,检查 this 单元测试。
相关代码:
using static ServiceFabric.Mocks.MockConfigurationPackage;
[..]
//build ConfigurationSectionCollection
var configSections = new ConfigurationSectionCollection();
//Build ConfigurationSettings
var configSettings = CreateConfigurationSettings(configSections);
//add one ConfigurationSection
ConfigurationSection configSection = CreateConfigurationSection("AppInsightsConfig");
configSections.Add(configSection);
//add one Parameters entry
ConfigurationProperty parameter = CreateConfigurationSectionParameters("AppInsights_InstrumentationKey", "some value");
configSection.Parameters.Add(parameter);
//Build ConfigurationPackage
ConfigurationPackage configPackage = CreateConfigurationPackage(configSettings, nameof(configPackage.Path));
var context = new MockCodePackageActivationContext(
"fabric:/MockApp",
"MockAppType",
"Code",
"1.0.0.0",
Guid.NewGuid().ToString(),
@"C:\logDirectory",
@"C:\tempDirectory",
@"C:\workDirectory",
"ServiceManifestName",
"1.0.0.0")
{
ConfigurationPackage = configPackage
};
[..]
//pass the `MockCodePackageActivationContext` to the Service constructor.