40

任何人都可以总结它们之间的差异和使用范围吗?

我读了SO文章,

  • ShouldBeEquivalientTo():ShouldBeEquivalentTo() 旨在用于比较复杂的对象图,而不是 .NET 框架的原始类型部分。
  • Should().BeEquivalentTo():单个项目 Equals() 实现以验证等效性,并且自版本 1 以来一直存在。FA 2.0 中引入的较新的 ShouldBeEquivalenTo() 正在进行深入的结构比较,并报告任何差异。
  • should().Be():找不到。

以我的拙见,ShouldBeEquivalientTo()Should().BeEquivalentTo()作品类似的话,如果Should().BeEquivalentTo()做深入比较的话。

4

1 回答 1

43

我同意这令人困惑。Should().BeEquivalentTo()实际上应该被称为Should().EqualInAnyOrder()或类似的东西。正如您所说,它使用所Equals涉及对象的实现来查看集合中的所有对象是否都expected出现在actual集合中,而不管顺序如何。我需要为下一个主要版本修复它。

于 2014-09-19T06:51:40.437 回答