我想知道如何加载配置,以便它可以在测试项目和应用程序运行时工作

本文关键字:测试 项目 工作 运行时 应用程序 何加载 加载 配置 想知道 | 更新日期: 2023-09-27 17:56:51

我想封装AppConfig,因此我准备了这样的类:

static AppConfig()
{
    var exePath = Assembly.GetExecutingAssembly().Location;
    _config = ConfigurationManager.OpenExeConfiguration(exePath);
}

我这样做是为了有保存的可能性,并且可以添加这样的新设置:

public static void SetSettings(string key, object value)
{
    if (_config.AppSettings.Settings.AllKeys.Contains(key))
    {
        _config.AppSettings.Settings[key].Value = value.ToString();
    }
    else
    {
        _config.AppSettings.Settings.Add(key, value.ToString());
    }
}
public static string GetSettings(string key, string defaultValue = "")
{
    if (_config.AppSettings.Settings.AllKeys.Contains(key))
    {
        return _config.AppSettings.Settings[key].Value;
    }
    return defaultValue;
}
public static void Save()
{
    _config.Save(ConfigurationSaveMode.Modified);
}

不幸的是,在测试中使用此类 AppCofing 不会加载它。

想知道如何加载配置,以便它在测试项目和应用程序运行时都能工作。

我想知道如何加载配置,以便它可以在测试项目和应用程序运行时工作

不应从外部配置文件读取单元测试。 读出的值应该是使用它们的任何内容的依赖项,因此您的测试可以通过构造函数、方法、属性等提供所需的值。

如果你想在配置文件中对获取和设置值进行单元测试,那么这可能不值得测试,因为那是框架代码。