2

我目前正在开发一个可在任何应用程序中使用的插件,插件的配置是通过使用 web.config 或 app.config 文件来完成的。

现在,我想对我的插件进行单元测试。我想在各种条件下测试不同的行为:

例如:

  1. 只有 1 个项目应标记为“默认”。
  2. 可以在插件中注册提供程序的集合,但是名称必须是唯一的,否则会引发特定的异常。

我的问题:

我有一个单元测试项目,我想用另一个应用程序配置文件测试每个方法,这可能吗?

我试过从 ExeConfiguration 读取文件,但我没有让它工作。

感谢您的反馈。

氪,

4

2 回答 2

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");
于 2013-11-14T10:45:34.717 回答
2

我的建议是模拟与配置文件的集成,而不是直接使用它。这种方法提供了更大的灵活性,并且无需担心多个配置文件。您可以使用模拟框架,也可以在获取配置值的代码之上创建自己的抽象层。

于 2013-11-14T06:41:48.050 回答