我已经开始考虑在我的项目中围绕一些业务逻辑添加一些单元测试。
我想测试的第一个方法是我的服务层中的一个方法,它返回给定节点的子节点列表。
该方法如下所示:
public List<Guid> GetSubGroupNodes(string rootNode)
{
List<Tree> tree = ssdsContext.Trees.ToList();
Tree root = ssdsContext.Trees.Where(x => x.UserId == new Guid(rootNode)).FirstOrDefault();
return GetChildNodeIds(root, tree);
}
private List<Tree> GetChildNodes(Tree rootNode, List<Tree> tree)
{
kids.Add(rootNode);
foreach (Tree t in FindChilden(rootNode, tree))
{
GetChildNodes(t, tree);
}
return kids;
}
我对这样的东西进行成像测试的方式是提供一个假的树结构,然后测试提供一个节点是否返回正确的子节点。
ssdsContext
是一个ObjectContext
。
我已经看到它可以为ObjectContext
如何在实体框架中模拟 ObjectContext 或 ObjectQuery<T> 进行提取和接口?但我也读过嘲笑 aDBContext
是浪费时间Unit Testing DbContext。
我还读到,因为实体框架是存储库模式和工作单元的实现,这里是:Generic Repository With EF 4.1 what is the point。
这让我有点困惑......是测试这样的方法来创建存储库层的唯一真正方法吗?甚至值得对这种方法进行单元测试吗?