如何避免在单元测试中从web.config复制配置设置

时间:2011-12-29 17:11:12

标签: unit-testing web-config

我有一个web项目,它从web.config中读取多个配置键。这些设置与项目中实施的规则相关。当单元测试调用Web项目中的模型类时,它最终会从单元测试项目中读取app.config。所以我必须在单元测试项目中复制app.config中的键。是否最好将配置信息移动到Web项目中的外部文件以避免配置信息的副本?

提前致谢。

2 个答案:

答案 0 :(得分:0)

在测试网络应用时,我最终会像您一样,将设置复制到测试项目的app.config文件中。这没什么不对。

另一种方法是模拟使用它们的配置设置,但这可能很麻烦,但它仍然是一种有效的方法。我倾向于保持简单并创建一个app.config文件。

答案 1 :(得分:0)

我会使用返回这些设置的包装类。以下示例

public interface ISettingStorage
{
    string GetSetting(string name);
}

public class SettingStorage : ISettingStorage
{
    public string GetSetting(string name)
    {
        // read the actual setting from the web.config
    }
}

通过这种方式,您可以在单元测试中模拟ISettingStorage以返回您想要的任何值。它还会略微加速单元测试,因为没有磁盘I / O.