我有一個函數遍歷父對象的列表,並獲取for-each循環中每個父對象的子對象。要獲取子對象列表,該函數會調用另一個函數。這裏是功能:如何測試嵌套的foreach循環?
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進行嘲弄。
offtopic:你永遠添加'parentObject'到'parentObjects'。你在'parentObjects'上調用'Children'而不是新創建的'parentObject'。所以你的代碼根本不能編譯(除非你有'Children'屬性的'List'實現)。 –
MarcinJuraszek
你模擬'_dbRepository'。 –