私はAddItemというOrderエンティティメソッドをテストしようとしています。重複したアイテムを追加できないようにしようとしています。ここではいくつかのサンプルコードは、次のとおりです。だからここユニットテストプライベートセッター質問(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;
}
は私の問題です:CheckForDuplicateItemメソッドが動作しますので、私は試験方法で新しい項目のプライベートセッターイドを設定するのですか?私は良いコーディング慣行のためにそのメンバーを公開させたくありません。私はちょうど愚かであり、エンティティアイテムにパブリックIdセッターを持たせる必要がありますか?または、反射を使用する必要がありますか?おかげ
注 - 私は通常、この目的のためにリフレクションを使用して永続
おかげで多くのことを行ってもいいです。私はこれを試してみましょう。 – CalebHC