這是我的第一個問題,請善待! :)如何使用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