我有这样的构造函数:依赖注入重构
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