1

我是 C# 和单元测试的新手,我一直在尝试为以下构造函数实现测试:

public Stepup()
{
    InitializeComponent();
}

Stepup 是一个分部类并继承了一个接口。如何为这样的构造函数实现单元测试?除此之外,还有哪些方法可以对没有参数的简单构造函数进行单元测试?

4

1 回答 1

2

当构造函数运行时,构造对象的某些不变量应该为真。您需要指定这些不变量是什么,然后在构造函数完成执行时测试它们是否为真。这里的要点是您不要在构造函数的内部实现细节中进行测试,只有您的规范所说的关于构造对象的任何内容实际上都是正确的。

例如:

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。这是规范,可以测试。

于 2013-06-28T21:32:24.930 回答