我被困在我不知道如何模拟的代码点上:

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/

10-13 08:00