2016-04-13 4 views
4

Ich verwende die integrierten C# Unit-Test-Klassen wie Assert und CollectionAssert. Ich möchte testen, dass alle Objekte, die von einem Methodenaufruf zurückgegeben werden, einen bestimmten Wert für eine bestimmte Eigenschaft haben.Inhalt von Unit Testing-Sammlungen erfüllt bestimmte Kriterien mit lambas/LINQ

Gibt es spezielle Klassen für Unit-Tests dieser Art von Ding, oder würde ich nur die normalen Methoden der Sammlung verwenden und die Ergebnisse in einen regulären Assert Aufruf einspeisen?

z.B. existiert so etwas: Assert.TrueForAll(myList,x => x.Prop == 123)

+5

Ich glaube, Fluent Assertions hat so etwas. Aber ansonsten würden Sie 'Assert.IsTrue (myList.All (x => x.Prop == 123))' – stuartd

+0

verwenden Dies scheint ziemlich vernünftig zu sein, da die Grundlage für eine Antwort –

Antwort

0

Wie wäre es, den Scheck zurückzugeben?

mylist.ForEach(x => Assert.IsTrue(x.Prop == 123)); 
+0

dies würde ein Fehler für jedes Objekt Fehler melden, obwohl, was könnte viel sein - ich denke das ist konzeptionell anders als ein Test "sind alle Objekte korrekt"? –

+0

Hum. Würde es nicht eher beim ersten Fehler brechen? –

+0

Oh, vielleicht bist du genau da –