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 に答える