Использование CollectionAssert.Contains к коллекции - PullRequest
5 голосов
/ 28 марта 2012

Я хочу написать что-то вроде:

var list = new List<int>(){1,2,3};
var bigList = new List<int>(){1,2,3,4,5,6,7,8,9};

CollectionAssert.Contains(bigList, list);

Я могу получить ошибку, похожую на:

 Expected: collection containing < 1,2,3 >
 But was:  < 1,2,3,4,5,6,7,8,9 >

Возможно ли использовать метод содержимого для другой коллекции?

Ответы [ 4 ]

5 голосов
/ 28 марта 2012

Подпись

   CollectionAssert.Contains (ICollection collection, Object element) 

И он проверяет, находится ли element (в единственном числе) внутри collection.
Это не метод проверки подсписков.

Вы, вероятно, должны использовать:

    CollectionAssert.IsSubsetOf (ICollection subset, ICollection superset) 
2 голосов
/ 28 марта 2012

С MSDN

Использование CollectionAssert.IsSubsetOf:

var list = new List<int>(){1,2,3};
var bigList = new List<int>(){1,2,3,4,5,6,7,8,9};

CollectionAssert.IsSubsetOf(list, bigList);
1 голос
/ 01 марта 2013

Та же функциональность, другой синтаксис (стиль ограничений NUnit, ближе к естественному языку, что является качеством хорошего теста):

var list = new List<int>(){1,2,3};
var bigList = new List<int>(){1,2,3,4,5,6,7,8,9};

Assert.That( list, Is.SubsetOf( bigList ) );
0 голосов
/ 04 августа 2016

Целью использования CollectionAssert.IsSubsetOf(list, bigList) чаще всего является то, что вы хотите увидеть, какой из элементов из списка не включен в большой список.Проверка того, что все элементы из list содержатся в bigList, возвращают только true или false, что не дает мне никакой полезной информации отладки о том, что не так.Я хочу, чтобы тест не прошел, а также предоставляю информацию о том, какого из элементов не было в bigList.

. Поэтому я всегда преобразую выражение CollectionAssert.IsSubsetOf(list, bigList) в

var list = new List<int>(){0,1,2,3,9}; // note the 0 and 9 is added to the list
var bigList = new List<int>(){1,2,3,4,5,6,7,8};

CollectionAssert.IsEmpty(list.Except(bigList));

Что дает результат

Expected <empty>
But was: <0, 9>

Другими словами, list содержит 0 и 9, которые не содержатся в bigList

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...