Tôi đang cố gắng kiểm tra phương thức thực thể Order gọi là AddItem và tôi đang cố gắng đảm bảo rằng các mục trùng lặp không thể được thêm vào. Dưới đây là một số mã ví dụ:Kiểm tra đơn vị Câu hỏi Setter riêng (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;
}
Vì vậy, đây là vấn đề của tôi: làm thế nào để tôi thiết Id setter tin Item mới trong phương pháp thử nghiệm để các phương pháp CheckForDuplicateItem sẽ làm việc? Tôi không muốn biến thành viên đó thành công để thực hành mã hóa tốt, tôi đoán vậy. Tôi chỉ là ngu ngốc và cần phải thực hiện các mục thực thể có một setter Id công cộng? Hay tôi cần sử dụng sự phản chiếu? Cảm ơn
Lưu ý - Tôi đang sử dụng NHibernate để kiên trì
Thanks a lot. Tôi sẽ thử. – CalebHC