11
votes

Pourquoi ou comment utiliser les méthodes de Nunit avec Icollection

Certains des méthodes d'assertion Nunit S sont surchargées à utiliser icollection mais pas icollection et donc vous ne pouvez donc pas les utiliser .

Y a-t-il de toute façon autour de cela? Heck, je fais quelque chose de stupide?

Je dois me remettre à utiliser assert.arequal plutôt que des méthodes spécialisées et sa rendant mes tests laids.

Des conseils?

EDIT:

Merci pour les réponses. Le que méthode de Nunit semble intéressant, donc je vais y examiner à une date ultérieure.

marque correctement mentionné cela, mais Collection Nunit Asserts sont excellent. Je les ai récemment utilisées sur de nouveaux tests et les avons trouvés excellents pour travailler.


2 commentaires

Je devrais mentionner, dans ma classe, je teste. Chaning La méthode Type de retour à la liste Au lieu de IList résout ce problème, mais à son tour, je suis la liste que je ne veux pas pour des raisons fortement discutées sur si etc. Déjà.


Il ne devrait y avoir aucun mal à utiliser Linq pour transformer votre collection dans une liste, à condition que vous n'ayez pas affirmé quoi que ce soit qui n'est pas présent dans la collection. Affirmant que la méthode foreach fonctionne par exemple serait une mauvaise forme.


3 Réponses :


8
votes

icollection et icollection sont des contrats différents - on n'hérite pas l'autre.

http://msdn.microsoft.com/fr- US / Bibliothèque / System.Collections.icollection_Members.aspx http://msdn.microsoft.com/en-us/library/y2fx0ty0.aspx

Si vous avez une collection générique, vous pouvez appeler tolist () sur elle et obtenir une liste , qui arrive à mettre en œuvre le non générique Icollection aussi. Ensuite, utilisez cette liste dans la méthode de l'ASSERT NUNIT.


3 commentaires

Briser. LINQ a sauvé la journée (encore une fois). Bravo, n'a pas pensé à cela.


LINQ pourrait ne pas économiser la journée, vous donnez simplement un souvenir teinté rose qui conduira à la déception plus tard.


Eh bien ça m'a donné tolis (), je suis heureux.



7
votes

Il existe un ensemble de collectionAsserts, ou vous pouvez hériter de votre test à partir de Aserthelper et utiliser la syntaxe comme xxx

un regard sur la documentation doit vous donner la syntaxe des contraintes qui s'appliquent aux collections. .

Voici un lien (ceci est la version 2.5.2)

nb Attendre est juste sténographique pour affirmer. Qu'est que ...


1 commentaires

Votre réponse est meilleure que celle acceptée, quelle pitié. Seulement 3 minutes de retard à l'acceptation.



9
votes

Je ne sais pas si c'est ce que vous recherchez, mais pour des collections génériques au lieu d'utiliser: xxx

i Utilisez: xxx

que je trouve presque aussi lisible.


0 commentaires