如何为嵌套集合编写 FluentAssertion,与顺序无关?
How to write FluentAssertion for nested collections, order independent?
使用 FluentAssertions 3.5.1,我试图断言一个整数数组列表等同于另一个整数数组列表,而不关心项目顺序。这是行不通的。为了解决这个问题,我试图断言当它们 do 具有相同的顺序时它们是相等的并且这也不起作用:
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()
不是。
使用 FluentAssertions 3.5.1,我试图断言一个整数数组列表等同于另一个整数数组列表,而不关心项目顺序。这是行不通的。为了解决这个问题,我试图断言当它们 do 具有相同的顺序时它们是相等的并且这也不起作用:
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()
不是。