我试图断言一个对象与另一个对象“相等”。
这些对象只是具有大量公共属性的类的实例。有没有一种简单的方法可以让NUnit根据属性声明相等性?
这是我目前的解决方案,但我认为可能会有更好的选择:
Assert.AreEqual(LeftObject.Property1, RightObject.Property1) Assert.AreEqual(LeftObject.Property2, RightObject.Property2) Assert.AreEqual(LeftObject.Property3, RightObject.Property3) ... Assert.AreEqual(LeftObject.PropertyN, RightObject.PropertyN)
我要追求的是与CollectionEquivalentConstraint相同的精神,其中NUnit验证两个集合的内容相同。
覆盖.Equal等于对象,然后在单元测试中只需执行以下操作:
Assert.AreEqual(LeftObject, RightObject);
当然,这可能意味着您只需将所有单个比较都移至.Equals方法,但这将允许您将该实现重复用于多个测试,并且如果对象无论如何都应该能够与同级进行比较,则可能有意义。