我有一棵树。
class TreeNode {
public TreeNode(string name, string description) {
Name = name;
Description = description;
}
string Name { get; set; }
string Description { get; set; }
public List<TreeNode> Children = new List<TreeNode>();
}
我想填充一个大的用于单元测试目的。我真的很想保持干燥。
出于说明目的说我的树具有以下结构
父级,说明 孩子 1,描述 1 孙子 1, desc1 孩子 2,描述 2
您将如何以优雅且可维护的方式填充树?
我发现这段代码非常重复且容易出错:
var parent = new TreeNode("Parent", "desc");
var child1 = new TreeNode("Child 1", "desc1");
var child2 = new TreeNode("Child 2", "desc2");
var grandchild1 = new TreeNode("Grandchild 1", "desc1");
parent.Children.Add(child1);
parent.Children.Add(child2);
child1.Children.Add(grandchild1);
编辑
我最终采用了 DSL 方法:
这里有一个演示测试。
实施在这里。
它使用一个构建器和一个简单的 DSL。