2012-03-28 20 views
5

ich so etwas schreiben wollen:Mit CollectionAssert.Contains gegen eine Sammlung

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); 

Ich kann einen Fehler ähnlich wie:

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

Ist es möglich, die enthält Verfahren gegen eine andere Sammlung zu verwenden ?

Antwort

4

Die Signatur ist

CollectionAssert.Contains (ICollection collection, Object element) 

Und es überprüft, ob element (Singular) innerhalb collection ist.
Es ist keine Methode, um nach Unterlisten zu suchen.

Sie sollten wahrscheinlich verwenden:

CollectionAssert.IsSubsetOf (ICollection subset, ICollection superset) 
+0

Christus, ich brauche ein paar Gläser! – Jon

2

Von MSDN

Verwendung 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

Gleiche Funktionalität, andere Syntax (NUnit des Beschränkungsstils, näher an der natürlichen Sprache, die ein Qualität eines guten Tests):

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

Der Zweck der Verwendung von CollectionAssert.IsSubsetOf(list, bigList) ist meistens, dass Sie sehen möchten, welche der Elemente aus der Liste nicht in der BigList enthalten ist. Das Testen, dass alle Elemente von list in bigList enthalten sind, gibt nur wahr oder falsch zurück, was mir keine hilfreiche Debugging-Information darüber gibt, was falsch ist. Ich möchte, dass der Test fehlschlägt und geben Sie auch die Information, welche der Artikel nicht in bigList war.

für mich Also, ich konvertieren immer die Anweisung CollectionAssert.IsSubsetOf(list, bigList) zu

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)); 

die das Ergebnis

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

Mit anderen Worten gibt, list enthält 0 und 9, die in bigList enthalten sind, nicht

Verwandte Themen