簡體   English   中英

單例模式的單元測試?

[英]Unit Test for Singleton Pattern?

假設我正在使用具有類A和B的軟件包p1。我無權訪問軟件包p1的實現。

現在,在我的應用程序中,我隨時都只需要一個A實例。

我在A類的應用程序中創建了一個Singleton類C。

樣品:

public Class ClassC
{
    private static readonly ClassA singletonObj = new ClassA();

    private ClassC();

    public static ClassA ClassC
    {
       get
       {
          return singletonObj;
       }
    }
}

如何對C類進行單元測試以確保為我的應用程序創建了一個實例?

如果您希望A類為單例,則上面的代碼為irrelevent。
您應該這樣編寫A類:

 public Class ClassA { private static Singleton instance; private Singleton() {} public static Singleton Instance { get { if (instance == null) { instance = new Singleton(); } return instance; } } //Any other function & members related to ClassA } 

為了測試單調,請嘗試在您的代碼中創建幾個ClassA實例。 好的結果是,在每次創建“新實例”時,您都獲得相同的實例,這意味着-您可以有2個實例,這些實例具有不合法的數據-它們全都是指向同一實例的指針。

暫無
暫無

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

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