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