c# - 如何为嵌套集合编写 FluentAssertion,与顺序无关?

标签 c# .net fluent-assertions

使用 FluentAssertions 3.5.1,我试图断言整数数组列表相当于另一个整数数组列表,而不关心项目顺序。这是行不通的。在尝试解决这个问题时,我尝试断言当它们具有相同的顺序时它们是相等的,但这也不起作用:

var a = new List <Int32[]> { new Int32[] { 1, 2 } };
var b = new List <Int32[]> { new Int32[] { 1, 2 } };

a.Should().BeEquivalentTo(b);

这给了我这样的信息:

Expected collection {{1, 2}} to be equivalent to {{1, 2}}, but it misses {{1, 2}}.

也许 BeEquivalentTo 不是比较嵌套集合的正确断言?

迈克尔

最佳答案

您可以使用以下代码修复它:

a.ShouldBeEquivalentTo(b);

a.ShouldAllBeEquivalentTo(b);

它会起作用,因为 ShouldBeEquivalentTo 是深度等于比较,而 Should().BeEquivalentTo() 不是。

关于c# - 如何为嵌套集合编写 FluentAssertion,与顺序无关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35611214/

相关文章:

c# - 将工具提示添加到组框

c# - Asp.Net MVC 5 - 长时间运行的任务 - 如何确保 IIS 回收 AppPool 时工作线程不会被丢弃?

c# - 使用 Task.WaitAll() 时如何获取任务的返回值

fluent-assertions - FluentAssertions的最新nuget包缺少System.Xml引用

c# - 仅从目录中检索文件名

c# - 将 arraylist 对象写入文件和从文件读取

.net - 我可以在.NET的CTR模式下使用AES吗?

c# - 流利的断言 : equivalence of sorted lists

c# - 如何使用流体断言.ShouldBeNull()

c# - Global.asax 仅在 Debug模式下运行