Я могу утверждать значение массива, используя выражения коллекции в NUnit, следующим образом:
var arr = new[] { 1, 2, 3 };
Assert.That(arr, Is.EquivalentTo((int[])[1, 2, 7, 3]));
Я бы хотел написать
var arr = new[] { 1, 2, 3 };
Assert.That(arr, Is.EquivalentTo([1, 2, 7, 3]));
EquiвалентTo() ожидает нетипизированный IEnumerable, он должен ожидать массив или перечисляемое того же типа, что и arr.
Есть ли в NUnit прямой способ добиться этого?
Проблема, которую я вижу, заключается в том, что тип проверочного значения влияет на ограничение (Is.Equivalen), поэтому система ограничений NUnit своего рода нетипизированный.
Без идиоматических ограничений я могу использовать служебный метод:
void AssertCollection(IEnumerable coll, IEnumerable expected)
{
Assert.That(coll, Is.EquivalentTo(expected));
}
AssertCollection(arr, [1, 2, 7, 3]);
Подробнее здесь: https://stackoverflow.com/questions/789 ... ression-wh
Мобильная версия