我有這樣的構造函數:依賴注入重構
public Section()
{
_tabs = new TabCollection(this);
_sections = new SubSectionCollection(this);
}
我希望得到的東西是這樣的:
public Section()
: this(new TabCollection(this), new SubSectionCollection(this))
{
}
public Section(TabCollection tabCollection, IList<ISection> sections)
{
_tabs = tabCollection;
_sections = sections;
}
當然,這是行不通的。任何人有任何建議,我可以重構此代碼? 我需要這樣做才能在單元測試中模擬Section類型的對象。我們正在使用FakeItEasy測試框架。
你在你的第二個例子中有重複的代碼 - 你不需要在第一個構造函數的內容行。除此之外,它不是一個完全依賴注入的解決方案,但我不明白爲什麼代碼會失敗。 –
是的,我的不好,我不使用第一個ctor中的內容行。當我複製粘貼時,我很匆忙。所以第一個ctor不包含任何東西。我需要一個默認的構造函數,以便能夠僞造一個類型爲Section的對象來進行單元測試。 – IonutC