我有一个类,我们称之为它Foo
,它是一个值类型,因此会覆盖Equals
/GetHashCode()
方法。在一个单独的测试夹具中,我想断言 Foo 上的所有属性都已正确设置,而不仅仅是用于相等的属性。出于这个原因,我的测试断言专门使用了该ShouldBeEquivalentTo
方法,如果“两个对象图具有相同名称的具有相同值的属性,而与这些对象的类型无关”,文档建议该方法将认为两个对象是等效的。
但是,似乎ShouldBeEquivalentTo
调用Foo.Equals
方法,得到一个真实的结果,然后继续短路ShouldBeEquivalentTo
承诺的基于反射的属性匹配。
这是预期的行为吗?如果是这样,在检查 FA 源时,我发现没有简单的方法来改变这种行为(IEquivalencyStep
被声明为内部的)。还有其他方法可以解决这个问题吗?
编辑:丹尼斯:是的,我比较的两个对象属于同一类型。总而言之,我已经覆盖Equals
了类 Foo,但不希望 FA 在我的单元测试中使用这种相等的概念。