【发布时间】:2012-10-24 03:19:52
【问题描述】:
我有这个演员:
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 类型的对象进行单元测试。
标签: c# asp.net asp.net-mvc c#-4.0 fakeiteasy