1

我正在创建一种方法来在我的公司中编写单元测试。我们每次都专注于测试一件事,但在检查基本构造函数是否接收正确参数的情况下,我没有找到其他任何东西,而是测试基本构造函数。

有更好的方法吗?我们将 MSTest 与 JustMock 和 Rhino 一起使用,因此可以使用扩展功能,但无论如何我还没有找到方法。在下面找到一个例子:

public Car : Vehicle
{
    public Car() : base(4) {};
}

public Vehicle
{
    public Vehicle(int wheelNumber) {};
}

我想对基本构造函数参数有一个期望,就像我对普通方法所做的那样。

谢谢

4

2 回答 2

1

不要对基本构造函数有任何期望。对于您的代码,我会确保这Car是一辆车,然后检查默认的 wheelNumber 是否设置正确(只有当有一个公共方法知道这一点时才会这样做)。

如果Car重复代码的构造函数Vehicle涉及wheelNumber您的测试应该仍然通过。然后当有人重构代码以使其正确完成时,测试仍然应该通过。这样你就知道你没有改变你的功能。

于 2014-03-17T21:49:44.670 回答
1

我不确定您是否可以以这种方式测试基本构造函数。

如果您要公开基本属性,也许您会测试它

大致:

Assert.AreEqual(car.BaseProperty,4)

或者您可以测试作用于数据/变量的公共方法的预期行为,另一个伪代码:

 class Vehicle
 {
    protected int  X{}
    public Vehicle(int x)
    { 
      X= x;
      ++X;
     }
 }
 car = new Car(4);
 Assert.ReturnsFive(car.DoSomething(),5)
于 2014-03-17T21:53:38.223 回答