自动测试构造函数中的属性分配

本文关键字:属性 分配 构造函数 自动测试 | 更新日期: 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是否正确实现

自动测试构造函数中的属性分配

对于我测试一个简单的构造函数来说,简单的访问器和赋值器是一种糟糕的做法。。。它将包括行为(意图)测试。测试实现细节的次数越少,测试的健壮性和抗更改性就越强。

测试具有复杂行为的构造函数可能很有用。但我经常尝试在我的构造函数中不存在任何复杂的行为^^