这是我的第一个问题,请善待! :)如何使用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