2012-06-21 54 views
0

我想制定出我的問題的最佳做法。我有一個類中的多個方法是創建新的對象:安裝員或構造師注射與單元測試

public void ToBeTested() 
    { 
     ClassForExmaple classForExample = new ClassForExample(); 

     //Other logic..... 
    } 

    public void ToBeTested2() 
    { 
      ClassForExmaple2 classForExample2 = new ClassForExample2(); 

      //Other logic..... 
    } 

等.....

我有一個總的這些對象,我打算用構造注射大約5,但這似乎相當混亂。因爲有幾個應該使用私有財產,或者有另一種方式?

我這樣做,所以我能夠嘲笑這些新的呼叫。

回答

2

在這種情況下使用構造函數注入似乎很好,因爲它看起來像是每個類型的對象都有一個單獨的實例。如果不是這種情況,可以將工廠注入到類的構造函數中,並允許它根據需要創建對象。

我會避免嘲笑私人財產;如果你不得不求助於此,通常意味着你的類中隱藏了可測代碼,應該更好地暴露給測試框架。公開的屬性暴露在外部會更好。

2

您應該使用構造函數注入。如果因爲依賴太多而變得混亂,那麼你應該分解你的代碼,這樣你正在測試的類不會那麼做。

對類存在太多的依賴關係表明您可能未遵循Single Responsibility Principle

也就是說,5個依賴關係(在某些情況下)可以很好。