Sto provando a testare un metodo di entità ordine chiamato AddItem e sto cercando di assicurarmi che non sia possibile aggiungere elementi duplicati. Ecco qualche esempio di codice:Domanda di setter privato del collaudo di 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;
}
Così qui è il mio problema: come faccio a impostare la nuova voce setter privato Id nel metodo di prova in modo che il metodo di CheckForDuplicateItem funzionerà? Non voglio rendere pubblico quel membro per buone pratiche di codifica, immagino. Sono semplicemente stupido e ho bisogno di rendere l'oggetto dell'entità un impostore pubblico? O devo usare la riflessione? Grazie
Nota - Sto usando NHibernate per la persistenza
Grazie mille. Farò un tentativo. – CalebHC