Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FluentAssertions:ShouldBeEquivalentTo vs Should().Be()vs Should().BeEquivalentTo()?_C#_Comparison_Fluent Assertions - Fatal编程技术网

C# FluentAssertions:ShouldBeEquivalentTo vs Should().Be()vs Should().BeEquivalentTo()?

C# FluentAssertions:ShouldBeEquivalentTo vs Should().Be()vs Should().BeEquivalentTo()?,c#,comparison,fluent-assertions,C#,Comparison,Fluent Assertions,有人能总结一下它们之间的差异和使用范围吗 我读了很多文章 :ShouldBeEquivalentTo()用于比较复杂的对象图,而不是.NET framework的基本类型部分 :individual items Equals()实现,以验证等效性,自版本1以来一直存在。FA 2.0中引入的较新的shouldbeeeequivalento()正在进行深入的结构比较,并报告任何差异 Should().Be():找不到 以我拙见的理解,应该与和应该是等效的。如果应该(),BeEquivalentT

有人能总结一下它们之间的差异和使用范围吗

我读了很多文章

  • :ShouldBeEquivalentTo()用于比较复杂的对象图,而不是.NET framework的基本类型部分
  • :individual items Equals()实现,以验证等效性,自版本1以来一直存在。FA 2.0中引入的较新的shouldbeeeequivalento()正在进行深入的结构比较,并报告任何差异
  • Should().Be():找不到

以我拙见的理解,
应该与
应该是等效的。如果
应该(),BeEquivalentTo()
的工作原理类似。BeEquivalentTo()
做了深入的比较。

我同意这是令人困惑的
Should().BeEquivalentTo()
实际上应该被调用
Should().equalanyOrder()
或类似的东西。正如您所说,它使用相关对象的
Equals
实现来查看
预期的
集合中的所有对象是否都出现在
实际的
集合中,而不考虑顺序。我需要在下一个主要版本中解决这个问题

谢谢。那么
Should().Be()
呢?它的工作原理与其中一个类似还是完全等效?只有
Should().Equal()
Should().beequivalento()相同,但需要严格的顺序。这就是为什么我建议将
beequivalento
重命名为
equalanyorder
。这在5.0中得到了解决。阅读所有关于它的内容,因为字符串比较应该等价于表示不区分大小写的匹配