2010-02-03 19 views
2

Ceci est une extension à un previous question I asked, aujourd'hui .... qui a souligné l'utilisation de CollectionAssert pour aider à tester des collections (que je n'ai jamais connues).Comment utiliser CollectionAssert (et Linq?) Pour trouver toutes les valeurs d'une propriété, sont les mêmes?

J'ai un ICollection<Foo> foos; de propriété Ceci a une propriété appelée état, qui .. pour garder les choses simples, est un int ou un byte (quoi que flotte votre bateau < - voyez ce que j'ai fait là ?!/me cache). Par conséquent, comment puis-je utiliser CollectionAssert pour voir si tous les éléments de l'ICollection retournée ont tous la même valeur pour cette propriété?

Répondre

2

Je ne vois rien dans CollectionAssert pour aider, mais vous pouvez faire quelque chose comme:

int expectedValue = foos.First().Status; 
Assert.IsTrue(foos.All(x => x.Status == expectedValue)); 

Ce n'est pas idéal que ce ne sera pas vous montrer les valeurs réelles en cas d'échec - mais vous pourrait écrire votre propre méthode pour cela, si vous devez le faire régulièrement.

+0

Merci Jon (encore: P). c'est bien. J'oublie constamment la méthode d'extension ~ All (..) ~. Cela fonctionnera comme un régal :) –