给定以下控制器类:
public class ProjectController : Controller { public ActionResult List() { return View(new List()); } }
如何在以下单元测试中获得对模型对象的引用?
public class ProjectControllerTests { private readonly ProjectController controller; public ProjectControllerTests() { controller = new ProjectController(); } [Fact] public void List_Action_Provides_ProjectCollection() { var result = (ViewResult)controller.List(); Assert.NotNull(result); } }
我已经尝试单步执行控制器操作以查看正在设置的内部字段,但没有运气.
我对ASP.NET MVC的了解非常有限,但我的猜测是我没有使用正确的上下文设置控制器.
有什么建议?
尝试:
result.ViewData.Model
希望这可以帮助.
在Asp.Net Mvc框架的Release Candidate版本中,该模型通过ViewResult对象的"Model"属性提供.这是一个更准确的测试版本:
[Fact] public void List_Action_Provides_ProjectCollection() { //act var result = controller.List(); //assert var viewresult = Assert.IsType(result); Assert.NotNull(result.ViewData.Model); Assert.IsType >(result.ViewData.Model); }