CollectionAssert.AreEquivalent与自定义IEqualityComparer

32
我有两个列表,我想要检查这两个列表是否相同(顺序不重要),而是否相同取决于我实现的实例。
理想情况是我可以使用CollectionAssert.AreEquivalent和自定义。然而,似乎CollectionAssert.AreEquivalent不接受任何IEqualityComparer。
有什么办法以简洁和可重用的方式做到这一点吗?
1个回答

40

CollectionAssert.AreEquivalent的实现方式为:

Assert.That(actual, new CollectionEquivalentConstraint(expected), message, args);
你可以这样编写你的断言并使用 Using 提供自定义的 IEqualityComparer:
Assert.That(actual,
    new CollectionEquivalentConstraint(expected).Using(customComparer));

你也可以将new CollectionEquivalentConstraint缩写为Is.EquivalentTo

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接