FluentAssertions: ShouldBeEquivalentTo vs Should().Be() vs S
本文关键字:vs Be Should ShouldBeEquivalentTo FluentAssertions | 更新日期: 2023-09-27 18:23:43
有人能总结它们之间的差异和使用范围吗?
我读过SO文章,
- ShouldBeEquivalientTo():ShouldBeequvalentTo()用于比较复杂的对象图,而不是.NET框架的基元类型部分
- Should().BequivalentTo():用于验证等价性的单个项Equals()实现,自版本1以来一直存在。FA 2.0中引入的新ShouldBeEquivalentTo()正在进行深入的结构比较,并报告任何差异
- Should().Be():找不到
根据我的理解,如果Should().BeEquivalentTo()
进行深入比较,ShouldBeEquivalientTo()
和Should().BeEquivalentTo()
的工作原理相似。
我同意这是令人困惑的。Should().BeEquivalentTo()
实际上应该被称为Should().EqualInAnyOrder()
或类似的东西。正如您所说,它使用所涉及对象的Equals
实现来查看expected
集合中的所有对象是否都出现在actual
集合中,而不管顺序如何。我需要为下一个主要版本修复它。