Gra*_*ton 29 c# nunit unit-testing
我有两个列表,我想检查两个列表是否相同(顺序不重要),以及它是否相同取决于IEqualityComparer我实现的实例.
理想的情况是我可以使用CollectionAssert.AreEquivalentCustom IEqualityComparer.但似乎CollectionAssert.AreEquivalent不接受任何IEqualityComparer.
关于如何以简洁和可重复使用的方式做到这一点的任何想法?
Qua*_*ter 36
CollectionAssert.AreEquivalent 实施方式如下:
Assert.That(actual, new CollectionEquivalentConstraint(expected), message, args);
Run Code Online (Sandbox Code Playgroud)
你可以写你的断言方式提供自定义的IEqualityComparer具有Using:
Assert.That(actual,
new CollectionEquivalentConstraint(expected).Using(customComparer));
Run Code Online (Sandbox Code Playgroud)
您还可以缩短new CollectionEquivalentConstraint为Is.EquivalentTo:
Assert.That(actual, Is.EquivalentTo(expected).Using(customComparer));
Run Code Online (Sandbox Code Playgroud)