【发布时间】:2013-09-20 13:08:25
【问题描述】:
我有一个类具有另一种类类型的属性:
public class MyClass
{
public DepdendenceClass DependenceProp { get; set; }
private MyClass(){}
public MyClass(MyClassFactory factory)
{
this.DependenceProp = factory.DependenceProp;
}
}
public class DepdendenceClass
{
public int key { get; set; }
private DepdendenceClass() { }
public DepdendenceClass(DepdendenceClassFactory factory)
{
this.key = factory.key;
}
}
我隐藏了基础构造函数,因为我不希望它可以创建空实例
每个都有一个流利的有序构造函数,让我编写这个测试:
[Test]
public void MyClassConstructorTest()
{
DepdendenceClass depdendencePropExpected = DepdendenceClassFactory.InitCreation()
.WithKey(1)
.Create();
MyClass myClassActual = MyClassFactory.InitCreation()
.WithDependency(depdendencePropExpected)
.Create();
Assert.That(myClassActual.DependenceProp, Is.EqualsTo(depdendencePropExpected));
}
有没有办法将 MyClassConstructor Test 与第二类的构造函数隔离开来?
【问题讨论】:
-
当您在类中声明了至少一个构造函数时,将不再生成默认构造函数。所以在你的两个类中,私有构造函数都是没有意义的。
-
谢谢,我只是在帖子中找到了私有的,在那里我学习了流利的构造函数并使用它,少写了1行:)
标签: c# unit-testing constructor mocking fluent