如何测试基础构造函数是否接收到正确的参数?

时间:2014-03-16 18:38:43

标签: c# .net unit-testing rhino-mocks justmock

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

有更好的方法吗?我们正在使用MSTest以及JustMock和Rhino,因此可以使用扩展功能,但无论如何我都找不到方法。查找以下示例:

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

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

我想对基础构造函数参数提出一个期望,就像我使用普通方法一样。

由于

2 个答案:

答案 0 :(得分:1)

不要指望有关基础构造函数的任何内容。对于您的代码,我会确保Car是一个工具,然后检查默认的wheelNumber是否设置正确(只有在有公共方法知道的情况下才会这样)。

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

答案 1 :(得分: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)