一尘不染

比较NUnit中两个对象之间的相等性

c#

我试图断言一个对象与另一个对象“相等”。

这些对象只是具有大量公共属性的类的实例。有没有一种简单的方法可以让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验证两个集合的内容相同。


阅读 318

收藏
2020-05-19

共1个答案

一尘不染

覆盖.Equal等于对象,然后在单元测试中只需执行以下操作:

Assert.AreEqual(LeftObject, RightObject);

当然,这可能意味着您只需将所有单个比较都移至.Equals方法,但这将允许您将该实现重复用于多个测试,并且如果对象无论如何都应该能够与同级进行比较,则可能有意义。

2020-05-19