gpt4 book ai didi

c# - 带有最小起订量的 Web.conf 中的模拟设置

转载 作者:行者123 更新时间:2023-11-30 14:12:24 25 4
gpt4 key购买 nike

我正在使用 VisualStudio.TestTools 在我的 MVC3 应用程序中进行单元测试。文件 /Web.conf 包含一个自定义配置,其值为 "false" 我无法通过 ConfigurationManager.AppSettings["DisableCheckboxes"];:

screenshot web.conf

这在生产效率上很有效,但在单元测试中却不行。值为 "null":

result of appsettings

如何使用框架 Moq 来模拟 /Web.conf 中的设置?

最佳答案

如果你抽象配置文件读取,并将这个抽象注入(inject)你的类,而不是直接使用 ConfigurationManager,你会更好。然后对于您的测试,您可以模拟抽象。

创建一个IConfigurationReader接口(interface):

public interface IConfigurationReader
{
string GetConfigSetting(string settingName);
}

真正的实现将使用 ConfigurationManager,但对于测试,您可以模拟 IConfigurationReader

这可能看起来有些过分,但它是一次性的工作,可以在您的整个应用程序中重复使用。额外的好处是,如果有一天您决定从其他地方读取配置设置,您只需更改实现,而无需触及您的消费者。

关于c# - 带有最小起订量的 Web.conf 中的模拟设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17805620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com