【问题标题】:How to write FluentAssertion for nested collections, order independent?如何为嵌套集合编写 FluentAssertion,顺序无关?
【发布时间】:2016-06-07 06:39:59
【问题描述】:

使用 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);

这给了我信息:

期望集合 {{1, 2}} 等价于 {{1, 2}},但它错过了 {{1, 2}}。

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

迈克尔

【问题讨论】:

    标签: c# .net fluent-assertions


    【解决方案1】:

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

    a.ShouldBeEquivalentTo(b);
    

    a.ShouldAllBeEquivalentTo(b);
    

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

    【讨论】:

    • 谢谢。我是图书馆的新手,还没有找到任何解释这些事情的文档;(
    • 您可以找到订购文档here。默认情况下,它将忽略顺序,除非您使用WithStrictOrdering 选项。
    猜你喜欢
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2015-10-07
    相关资源
    最近更新 更多