我被困在我不知道如何模拟的代码点上:
ConfigurationManager.AppSettings["User"];
我必须模拟 ConfigurationManager,但我不知道,我正在使用 Moq 。
有人可以给我一个提示吗?谢谢!
最佳答案
我相信对此的一种标准方法是使用外观模式来包装配置管理器,然后您可以控制一些松散耦合的东西。
因此,您将包装 ConfigurationManager。就像是:
public class Configuration: IConfiguration
{
public User
{
get
{
return ConfigurationManager.AppSettings["User"];
}
}
}
(您可以从配置类中提取一个接口(interface),然后在代码中的任何地方使用该接口(interface))
然后你只需模拟 IConfiguration。您也许能够以几种不同的方式实现外观本身。上面我选择只是包装各个属性。您还可以获得使用强类型信息而不是弱类型散列数组的附带好处。
关于c# - 如何使用 moq 模拟 ConfigurationManager.AppSettings,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9486087/