【问题标题】:CollectionAssert.AreEquivalent with Custom IEqualityComparerCollectionAssert.AreEquivalent 与自定义 IEqualityComparer
【发布时间】:2011-03-20 16:05:26
【问题描述】:

我有两个列表,我想检查两个列表是否相同(顺序不重要),是否相同取决于我实现的IEqualityComparer实例。

理想的情况是我可以使用CollectionAssert.AreEquivalent 和自定义IEqualityComparer。但是,CollectionAssert.AreEquivalent 似乎没有接收任何IEqualityComparer

知道如何以简洁和可重用的方式做到这一点吗?

【问题讨论】:

    标签: c# unit-testing nunit


    【解决方案1】:

    CollectionAssert.AreEquivalent 实现为:

    Assert.That(actual, new CollectionEquivalentConstraint(expected), message, args);
    

    你可以用这种方式写出你的断言,并提供一个自定义的IEqualityComparerUsing

    Assert.That(actual,
        new CollectionEquivalentConstraint(expected).Using(customComparer));
    

    您也可以将new CollectionEquivalentConstraint 缩短为Is.EquivalentTo

    Assert.That(actual, Is.EquivalentTo(expected).Using(customComparer));
    

    【讨论】:

      猜你喜欢
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多