自动测试构造函数中的属性分配
本文关键字:属性 分配 构造函数 自动测试 | 更新日期: 2023-09-27 18:26:30
在我的域层中,我创建了很多看起来像的类
public class Route
{
public Route(Location origin, Location destination)
{
this.Origin = origin;
this.Destination = destination;
}
public Location Origin { get; }
public Location Destination { get; }
}
现在我需要对这个构造函数进行单元测试
[Test]
public void PropertiesAreAssigned()
{
var origin = new Location(...);
var destination = new Location(...);
var route = new Route(origin, destination);
route.Origin.Should().Be(origin);
route.Destination.Should().Be(destination);
}
我有很多这样的类和测试,它们彼此非常相似。我想要的是有一种方法,它只接受类型参数,然后为我做所有的测试,即
- 为每个构造函数参数实例化一个变量(需要完整的依赖关系图)
- 将这些变量传递给构造函数
- 检查是否正确指定了特性值
我很确定我可以通过一点反思来做到这一点,但也许有一个现有的库可以做到吗?欢迎更多测试,例如
- 测试null参数会引发正确的异常
- 测试Equals和GetHashCode是否正确实现
对于我测试一个简单的构造函数来说,简单的访问器和赋值器是一种糟糕的做法。。。它将包括行为(意图)测试。测试实现细节的次数越少,测试的健壮性和抗更改性就越强。
测试具有复杂行为的构造函数可能很有用。但我经常尝试在我的构造函数中不存在任何复杂的行为^^