如何使用xUnit模拟.Net Core中的配置文件 [英] How to Mock config file in .Net Core with xUnit

查看:62
本文介绍了如何使用xUnit模拟.Net Core中的配置文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在.NET Core中模拟配置文件值.

I want to mock the config file values in .NET Core.

我正在使用xUnit进行单元测试.我正在使用应用程序见解.

I am using xUnit for unit test. I am using application insight.

我使用配置文件进行配置.现在,我要在单元测试用例中模拟该 .cs 配置文件.

I use config file for configuration. Now I want to mock that .cs config file in my unit test case.

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'.

You can do this by using the OSS/Nuget package 'ServiceFabric.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.

这篇关于如何使用xUnit模拟.Net Core中的配置文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆