Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用xUnit在.Net内核中模拟配置文件_C#_Unit Testing_Azure Service Fabric_Xunit.net - Fatal编程技术网

C# 如何使用xUnit在.Net内核中模拟配置文件

C# 如何使用xUnit在.Net内核中模拟配置文件,c#,unit-testing,azure-service-fabric,xunit.net,C#,Unit Testing,Azure Service Fabric,Xunit.net,我想模拟.NETCore中的配置文件值 我正在使用xUnit进行单元测试。我正在使用ApplicationInsight 我使用配置文件进行配置。现在我想在我的单元测试用例中模拟.cs配置文件 var configurationPackage = statelessServiceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config"); var appInsightsSection = configu

我想模拟.NETCore中的配置文件值

我正在使用xUnit进行单元测试。我正在使用ApplicationInsight

我使用配置文件进行配置。现在我想在我的单元测试用例中模拟.cs配置文件

var configurationPackage = statelessServiceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config");
var appInsightsSection = configurationPackage.Settings.Sections["AppInsightsConfig"];
var appInsightsInstrumentationKey = appInsightsSection.Parameters["AppInsights_InstrumentationKey"].Value;
var configurationPackage在测试中为空

所以我想嘲笑一下

statelessServiceContext.CodePackageActivationContext.GetConfigurationPackageObject("Config")

您可以使用/package'servicefacture.Mocks'来实现这一点

例如,检查单元测试

相关代码:

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.

包括您如何尝试测试这一点。当前没有足够的上下文来为您提供有用的反馈。什么是无状态ServiceContext?也许您可以使用依赖项注入来解析它,或者解析它的属性CodePackageActivationContext?然后,您可以在单元测试初始化期间为其注册替代实现/配置。