具有
public ActionResult Create(CategoryViewModel viewModel)
{
if (!ModelState.IsValid)
{
return View(viewModel);
}
Category category = new Category();
category.Parent = daoTemplate.FindByID<Category>(viewModel.ParentId);
category.CopyFrom(viewModel);
daoTemplate.Save(category);
return RedirectToAction("Index");
}
我需要确保新创建的类别具有正确的父集。如果我无权访问方法之外的类别对象,我该怎么做呢?
答案 0 :(得分:2)
最终,你提出的测试确实是在验证两件事:
1)daoTemplate.FindByID<T>()
按预期工作
2)Create
方法调用daoTemplate.FindByID<T>()
这应该是两个单独的测试。
第一个测试应该是DaoTemplate
装置的一部分 - 除了在没有看到更多源代码的情况下很难对其进行评论。
其次,要验证操作是否调用了预期的方法,您需要手动滚动模拟对象或使用模拟框架。 C#有许多流行的模拟框架(Moq,RhinoMocks,甚至是古老的NMock2 - 一开始就看到古老的stackoverflow问题What C# mocking framework to use?),开始模拟的经典之处是Martin Fowler的文章“{{ 3}}“。