我正在创建一种在我公司编写单元测试的方法。我们每次都专注于测试一件事,但是在检查基础构造函数是否接收到正确参数的情况下,我没有找到任何其他东西而不是测试基础构造函数。
有更好的方法吗?我们正在使用MSTest以及JustMock和Rhino,因此可以使用扩展功能,但无论如何我都找不到方法。查找以下示例:
public Car : Vehicle
{
public Car() : base(4) {};
}
public Vehicle
{
public Vehicle(int wheelNumber) {};
}
我想对基础构造函数参数提出一个期望,就像我使用普通方法一样。
由于
答案 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)