我正在使用NUnit断言以下内容:
[Test]
public void Test()
{
CollectionAssert.AreEquivalent(new[] {"a", "b", "c"}, new[] {"b", "a", "d"});
}
这会产生以下错误消息:
预期:相当于< “a”,“b”,“c”>
但是:< “b”,“a”,“d”>
这对于这个微不足道的例子是可以的。但是,当有更多元素和/或更长时间,更难区分字符串时,错误消息无助于查看正在发生的事情。
我期待(也许还有)像:
缺少:“c”
额外:“d”
有没有办法使用NUnit实现这一目标? (我当然可以去自己编程,但这不是问题。)
答案 0 :(得分:1)
我认为这会得到你想要的结果:
var a = new[] { "a", "b", "c" };
var b = new[] { "b", "a", "d" };
CollectionAssert.AreEquivalent( a, b, "a is Missing " + string.Join( ", ", b.Except( a ) ) + " and b is missing " +
string.Join( ", ", a.Except( b ) ));