簡體   English   中英

C#:使用不同的配置文件運行每個單元測試

[英]C#: Run each unit test with different configuration file

我目前正在開發一個可在任何應用程序中使用的插件,並且該插件的配置是通過使用web.config或app.config文件來完成的。

現在,我要對插件進行單元測試。 我想測試各種條件下的不同行為:

例如:

  1. 僅一個項目應標記為“默認”。
  2. 可以在插件中注冊提供程序的集合,但是名稱必須唯一,否則將引發特定異常。

我的問題:

我有一個單元測試項目,我想用另一個應用程序配置文件測試每種方法,這可能嗎?

我嘗試從ExeConfiguration讀取文件,但無法正常工作。

感謝您的反饋。

KR,

這就是我們的工作(與@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");

我的建議是模擬與配置文件的集成,而不是直接使用它。 這種方法提供了更大的靈活性,並且無需擔心多個配置文件。 您可以使用模擬框架,也可以在獲取配置值的代碼之上創建自己的抽象層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM