我在我的mvc3应用程序中使用VisualStudio.TestTools进行单元测试。文件/Web.conf包含一个自定义配置,它的值是我无法通过ConfigurationManager.AppSettings["DisableCheckboxes"];在我的控制器中获取的"false"

这在生产测试中效果很好,但在单元测试中效果不佳。该值为"null"

如何使用框架Moq模拟/Web.conf中的设置
发布于 2013-07-24 00:51:45
如果您抽象配置文件读取,并将此抽象注入到您的类中,而不是直接使用ConfigurationManager,则会更好。然后,对于您的测试,您可以模拟抽象。
创建一个IConfigurationReader接口:
public interface IConfigurationReader
{
string GetConfigSetting(string settingName);
}真正的实现将使用ConfigurationManager,但是对于测试,您可以模拟IConfigurationReader。
它可能看起来有点夸张,但它是一次性的工作,可以在您的应用程序中重用。额外的好处是,如果有一天你决定从其他地方读取配置设置,你只需更改实现,而不会接触到你的消费者。
https://stackoverflow.com/questions/17805620
复制相似问题