J'écris actuellement un projet C # et j'ai besoin de faire des tests unitaires pour le projet. Pour l'une des méthodes dont j'ai besoin pour effectuer des tests unitaires, j'utilise une ICollection qui est normalement remplie à partir des éléments sélectionnés d'une zone de liste.
Lorsque 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 cette ICollection et un élément de la collection?
ICollection
est une interface, vous ne pouvez pas l'instancier directement. Vous devrez instancier une classe qui implémente ICollection
; par exemple, List<T>
. De plus, l'interface ICollection
n'a pas de méthode Add
- vous aurez besoin de quelque chose qui implémente IList
ou IList<T>
pour ça.
Exemple:
List<object> icollection = new List<object>();
icollection.Add("your item here");
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>
met en œuvre ICollection
, du moins pour autant que je sache.
Disons que vous aurez une collection de chaînes, alors 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.
Ce que vous pouvez faire est de créer un type qui implémente ICollection et de l'utiliser à partir de là dans vos tests. Une liste ou une collection fonctionnerait pour créer une instance de l'objet. Je suppose qu'une autre question serait de savoir quel type sont les éléments de la zone de liste. L'ajout d'éléments à la liste ou à la collection est assez simple en utilisant simplement 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 a-t-il quelque chose de plus spécifique que vous devez faire avec cette collection?