В NUnit 2.4.2 появился helper-класс Has
для написания ассертов, проверяющих коллекции. Кроме того, стандартный хелпер Is
тоже может быть применен для некоторых проверок. Вот пример из официальной документации:
int[] iarray = new int[] { 1, 2, 3 };
string[] sarray = new string[] { "a", "b", "c" };
// Проверяем, что в массиве нет пустых элементов
Assert.That( iarray, Is.All.Not.Null );
// Проверяем, что в массиве только строки
Assert.That( sarray, Is.All.InstanceOfType(typeof(string)) );
// Проверяем, что все элементы больше чем 0
Assert.That( iarray, Is.All.GreaterThan(0) );
// Проверяем уникальность
Assert.That( sarray, Is.Unique );
// Проверка на наличие/отсутствие элементов
Assert.That( iarray, Has.Member(3) );
Assert.That( sarray, Has.Member("b") );
Assert.That( sarray, Has.No.Member("x") );
// Проверки на эквивалентность
Assert.That(
new string[] { "c", "a", "b" },
Is.EquivalentTo( sarray ) );
Assert.That( new int[] { 1, 2, 2 }, Is.Not.EquivalentTo( iarray ) );
Assert.That( new int[] { 1, 3 }, Is.SubsetOf( iarray ) );
Там помимо метода That есть еще куча интересных вещей. К примеру, вхождение в коллекцию по-моему можно проверить так:
А для проверки на эквивалентность можно использовать
с кучей перегрузок.
Ну это как бы устаревший синтаксис. Сейчас рекомендуется использовать
Assert.That()
, потому что полученный код легче читается и вообще выглядит консистентнее.