2013-06-28 37 views
1
部分类

我是新来的C#和单元测试,我一直在努力实现以下构造测试:单元测试的InitializeComponent()为

public Stepup() 
{ 
    InitializeComponent(); 
} 

升压是部分类和继承的接口。如何为这样的构造函数实现单元测试?另外,除此之外,还有什么方法可以单元测试一个没有参数的简单构造函数?

+0

升级看起来不像类或方法。如果它应该是一个方法(缺少void返回类型),则唯一可以做的就是检查由InitializeComponent修改的对象的状态。 –

+0

对此感到抱歉。这里的代码是用于Stepup构造器的。我已经编辑了这个问题要清楚。另外我怎样才能检查修改对象的状态? – bachkoi32

+2

它是完全自动生成的代码,无论是构造函数还是InitializeComponent()方法。如果您的单元测试失败,则必须修复Visual Studio。这并不是一个棘手的问题。 –

回答

2

当构造函数运行时,关于构造对象的某些不变量应该为true。你需要指定这些不变量是什么,然后测试它们在构造函数完成执行时为真。这里的主要观点是,你在构造函数的内部实现细节中测试了并不是,只是你的规范说的是真实的,关于构造对象实际上是真的。

例如:

class Circle { 
    private readonly double radius; 
    public double Radius { 
     get { 
      Contract.Ensures(Contract.Result<double>() >= 0));    
      return this.radius; 
     } 
    } 

    public Circle(double radius) { 
     Contract.Requires(radius >= 0); 
     this.radius = radius; 
    } 
} 

在此,在构造完成后不变是Circle.Radius返回中传递的构造参数radius值这是本说明书中,并且它可以被测试。