Estoy tratando de probar un método de entidad de Orden llamado AddItem y estoy tratando de asegurarme de que no se puedan agregar elementos duplicados. Aquí es un código de ejemplo:Prueba de Unidad Pregunta de Organizador Privado (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;
}
Así que aquí está mi problema: cómo fijo colocador privada Id del elemento nuevo en el método de prueba por lo que el método CheckForDuplicateItem va a funcionar? No quiero hacer público ese miembro para buenas prácticas de codificación, supongo. ¿Estoy siendo estúpido y necesito hacer que la entidad Item tenga un setter de Id público? ¿O necesito usar el reflejo? Gracias
Nota - estoy usando NHibernate para la persistencia
muchas gracias. Voy a intentar esto. – CalebHC