Question

Je suis en train d'écrire un projet C # et je dois faire des tests unitaires pour le projet. Pour l'une des méthodes que je besoin de tester l'unité que je fais usage d'un ICollection qui est normalement rempli à partir des éléments sélectionnés d'une zone de liste.

Quand je crée un test unitaire pour la méthode, il crée la ligne

ICollection icollection = null; //Initialise to an appropriate value

Comment puis-je créer une instance de ce ICollection et un élément à la collection?

Était-ce utile?

La solution

ICollection est une interface, vous ne pouvez pas instancier directement. Vous aurez besoin d'instancier une classe qui implémente ICollection; par exemple, List<T>. En outre, le ICollection l'interface ne dispose pas d'un Add méthode -. vous aurez besoin de quelque chose qui implémente IList ou IList<T> pour que

Exemple:

List<object> icollection = new List<object>();
icollection.Add("your item here");

Autres conseils

List<Object> list = new List<Object>();
list.Add(object1);
list.Add(object2);
// etc...

ICollection collection = list;
// further processing of collection here.

Contrairement à certains commentaires, IList<T> n'implémente ICollection, au moins autant que je peux dire.

Le mot Let vous aurez une collection de chaînes, le code sera:

ICollection<string> test = new Collection<string>();
test.Add("New Value");

Je crois que vous devez hériter de l'interface ICollection dans une nouvelle classe avant de pouvoir l'utiliser.

Comment mettre en œuvre ICollection

Ce que vous pouvez faire est de créer un type qui implémente ICollection et à partir de là faire usage de celui-ci dans vos tests. Une liste ou une collection travailleraient pour la création d'une instance de l'objet. Je suppose une autre question serait quel type sont les éléments de la liste. Ajout d'éléments à la liste ou la collection est assez trivial juste en utilisant la méthode .Add (...).

List<T> list = new List<T>();
list.Add(item_from_your_list_box);
list.Add(item2_from_your_list_box);

Y at-il quelque chose dont vous avez besoin plus spécifique faire avec cette collection?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top