これは私の最初の質問ですので、親切にしてください! :)Moqを使用して戻り値のないメソッドをテストするには?
私がしようとしているのは、作成中に単一項目クラスの多くの新しいインスタンスをリストに追加するマネージャークラスのテストを書くことです。このマネージャクラスでUpdateAllItemsが呼び出されると、リストを反復して、各単一アイテムに対してIncrementを呼び出すことが意図されます。
マネージャークラスは私のコードですが、単一のアイテムクラスではありませんので変更できません。
私はテストフレームワークにNUnitを使用し、Moqを使い始めています。マネージャークラスは単一のアイテムクラスを使用するので、私はMoqを使う必要があると思うので、私はマネージャーだけをテストしているので、単一のアイテムではありません。
UpdateAllItemsメソッドのテストはどのように記述しますか? (技術的には私が最初に知っているテストを書くべきです)。ここで
は...すべての助けを事前に
public class SingleItem_CodeCantBeModified
{
public int CurrentValue { get; private set; }
public SingleItem_CodeCantBeModified(int startValue)
{
CurrentValue = startValue;
}
public void Increment()
{
CurrentValue++;
}
}
public class SingleItemManager
{
List<SingleItem_CodeCantBeModified> items = new List<SingleItem_CodeCantBeModified>();
public SingleItemManager()
{
items.Add(new SingleItem_CodeCantBeModified(100));
items.Add(new SingleItem_CodeCantBeModified(200));
}
public void UpdateAllItems()
{
items.ForEach(item => item.Increment());
}
}
おかげで私が働いているかの一般的なアイデアを与えるいくつかのサンプルコードです!
このクラスはどのように役立ちますか?カウンタのプライベートリストを作成し、メソッドが呼び出されるたびに各項目を更新します。オブジェクトの振る舞いにはある程度の変更が必要です。 UpdateAllItemsが機能しない場合 - 変更はどのように観察されますか? – Gishu