【发布时间】:2014-05-02 23:06:33
【问题描述】:
我有一个函数,它遍历父对象列表并在 for-each 循环中为每个父对象获取子对象。要获取子对象的列表,该函数调用另一个函数。这是函数:
public IEnumerable<IParentObject> GetParentAndChildObjects()
{
var parentObjects = new List<ParentObject>();
foreach (var item in _dbRepository.GetParentObjects())
{
var parentObject = new ParentObject() { Id = item.ID, Name = item.Name };
foreach (var subItem in _dbRepository.GetChildObjects(item.ID))
{
parentObjects.Children.Add(new ChildObject() { Id = subItem.ID, Name = subItem.Name });
}
}
return parentObjects;
}
如何为这个函数编写单元测试?我正在使用 Moq 进行模拟。
【问题讨论】:
-
离题:您永远不会将
parentObject添加到parentObjects。你在parentObjects上调用Children而不是新创建的parentObject。所以你的代码根本不会编译(除非你有自己的List<T>实现和Children属性)。 -
你嘲笑
_dbRepository。
标签: c# unit-testing moq