在NUnit中断言集合与预期集合的顺序相同

rip*_*234 12 collections nunit assertions

我知道如何检查某个属性是否订购了一个集合:

Assert.That(actual, Is.Ordered.By("Foo"));
Run Code Online (Sandbox Code Playgroud)

如何断言实际包含此特定顺序的元素(1,2,5,3,4)(无需编写自定义比较器).

Mar*_*son 24

使用

CollectionAssert.AreEqual(expectedIEnumerable, actualIEnumerable);
Run Code Online (Sandbox Code Playgroud)

这将检查项目是否相同且顺序相同.

我很确定当你使用Assert时.在集合上,你会得到集合断言功能.所以你可以说像

Assert.That(collection, Is.EqualTo(expectedCollection)); // Same order
Run Code Online (Sandbox Code Playgroud)

要么

Assert.That(collection, Is.EquivalentTo(expectedCollection)); // Same item count
Run Code Online (Sandbox Code Playgroud)

以及类似的东西

Assert.That(collection, Has.Count.EqualTo(expectedSize));
Run Code Online (Sandbox Code Playgroud)

Has关键字打开了特定于集合断言的东西,并且非常有用.