我目前正在开发一个可在任何应用程序中使用的插件,插件的配置是通过使用web.config或app.config文件完成的。
现在,我想对我的插件进行单元测试。我想在各种条件下测试不同的行为:
例如:
我的问题:
我有一个单元测试项目,我想用另一个应用程序配置文件测试每个方法,这可能吗?
我已尝试从ExeConfiguration中读取该文件,但我无法让它工作。
感谢您的反馈。
氪,
答案 0 :(得分:3)
这就是我们所做的(与@THG相同)在他的回答中解释。
public interface IConfiguration
{
string SettingA { get; }
string SettingB { get; }
}
public class Configuration : IConfiguration
{
public string SettingA
{
get
{
return ConfigurationManager.AppSettings["SettingA"];
}
}
public string SettingB
{
get
{
return ConfigurationManager.AppSettings["SettingB"];
}
}
}
然后在你的测试中
var config = MockRepository.GenerateStub<IConfiguration>();
config.Stub(x => x.SettingA).Return("Fred");
答案 1 :(得分:2)
我的建议是模拟与配置文件的集成,而不是直接使用它。这种方法提供了更大的灵活性,无需担心多个配置文件。 您可以使用模拟框架,也可以在获取配置值的代码之上创建自己的抽象层。