CollectionAssert.Contient(maliste, myItem) != Affirmer.IsTrue(maliste.Contient(myItem))

J'ai été à la recherche à la mise en œuvre de tests unitaires pour un contrôleur de contrôleur, en particulier pour les tests de collections. Sur le MSDN exemple l'utilisation de CollectionAssert.Contains() confirme si un objet apparaît dans une liste.

J'ai un List<myObject>myObject implémente IEquatable (c'est à dire la mise en œuvre d'un Equals(), de sorte que le List<myObject>.Contains() est en mesure de bien discerner l'existence (ou la non-existence d'un objet de type myObject dans la liste).

La CollectionAssert.Contains() (pour un MS-VS test, pas nunit) fonction, cependant, ne semble pas appeler Equals().
Alors je me demandais si c'est pour une utilisation sur des tableaux simples?
Si non, comment est-il en mesure de comparer des objets personnalisés?

J'ai tout simplement changé ma affirmer dans ce cas à Assert.IsTrue(myList.Contains(myObjectInstance)).

RE: Votre commentaire. C'est mon point de vue, trop! Les deux méthodes ont des comportements différents, de sorte que vous avez à rendre compte de cette façon. Vous pouvez soit appeler IsTrue(myList.Contains(item)), ou de remplacer le object version de Equals() et l'ont délégué à votre IEquatable version.

OriginalL'auteur Daniel | 2011-09-21