CollectionAssert.AreEquivalent 与自定义 IEqualityComparer

发布于 2024-09-11 15:14:29 字数 292 浏览 2 评论 0原文

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

理想的情况是我可以将 CollectionAssert.AreEquivalent 与自定义 IEqualityComparer 结合使用。然而,CollectionAssert.AreEquivalent 似乎不接受任何IEqualityComparer

关于如何以简洁且可重用的方式做到这一点有什么想法吗?

I have two lists, I want to check whether the two lists are the same ( order not important), and whether it's the same depends on the IEqualityComparer instance I implement.

The ideal case is that I can use CollectionAssert.AreEquivalent with Custom IEqualityComparer. However it seems that CollectionAssert.AreEquivalent doesn't take in any IEqualityComparer.

Any idea on how to do this in a succinct and reusable manner?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

屋顶上的小猫咪 2024-09-18 15:14:29

CollectionAssert.AreEquivalent 实现为:

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

您可以以这种方式写出您的断言,并使用 Using 提供自定义 IEqualityComparer

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

您还可以缩短 new CollectionEquivalentConstraintIs.EquivalentTo

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

CollectionAssert.AreEquivalent is implemented as:

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

You can write out your assert that way and supply a custom IEqualityComparer with Using:

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

You can also shorten new CollectionEquivalentConstraint to Is.EquivalentTo:

Assert.That(actual, Is.EquivalentTo(expected).Using(customComparer));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文