【发布时间】:2012-01-30 01:15:25
【问题描述】:
我有一个从 web.config 读取多个配置键的 Web 项目。这些设置与项目中实施的规则有关。当单元测试调用 web 项目中的模型类时,它最终会从单元测试项目中读取 app.config。所以我必须在单元测试项目中复制 app.config 中的键。将配置信息移动到web项目中的外部文件中是不是更好,以避免配置信息的复制?
提前致谢。
【问题讨论】:
我有一个从 web.config 读取多个配置键的 Web 项目。这些设置与项目中实施的规则有关。当单元测试调用 web 项目中的模型类时,它最终会从单元测试项目中读取 app.config。所以我必须在单元测试项目中复制 app.config 中的键。将配置信息移动到web项目中的外部文件中是不是更好,以避免配置信息的复制?
提前致谢。
【问题讨论】:
在测试网络应用程序时,我最终会和你做同样的事情,将设置复制到测试项目的 app.config 文件中。这没有什么问题。
替代方法是模拟将使用它们的配置设置,但这可能很麻烦,但这仍然是一种有效的方法。我倾向于保持简单并创建一个app.config 文件。
【讨论】:
我会使用返回这些设置的包装类。下面的例子
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,它还会稍微加快单元测试的速度。
【讨论】: