J'essaie de tester une méthode d'entité Order appelée AddItem et j'essaie de m'assurer que les éléments en double ne peuvent pas être ajoutés. Voici quelques exemples de code:Question de Setter privé de test d'unité (C#)
[Test]
public void ItemCannotBeAddedTwiceToOrder()
{
Order o = new Order();
Item i = new Item("Bike");
o.AddItem(i);
o.AddItem(i);
Assert.AreEqual(o.ItemCount, 1, "A duplicate item was added.");
}
public void AddItem(Item newItem)
{
if(!CheckForDuplicateItem(newItem))
_items.Add(newItem);
}
public bool CheckForDuplicateItem(Item newItem)
{
foreach(Item i in _items)
{
if(i.Id == newItem.Id)
return true;
}
return false;
}
Voici donc mon problème: comment puis-je configurer setter privé du nouvel article Id dans la méthode d'essai de sorte que la méthode CheckForDuplicateItem fonctionnera? Je ne veux pas rendre public ce membre pour de bonnes pratiques de codage, je suppose. Est-ce que je suis juste stupide et ai besoin de faire que l'élément d'entité ait un régleur d'identité public? Ou dois-je utiliser la réflexion? Merci
Remarque - J'utilise NHibernate pour la persistance
Merci beaucoup. Je vais essayer. – CalebHC