【发布时间】:2009-04-05 06:28:06
【问题描述】:
我正在对我的标准进行一些简单的 MS 单元测试,没有什么特别的控制器。
当我从返回的ViewResult 对象中检查ViewName 属性时,它是""(空)。
我的印象是 ViewName 隐含在 View 的名称中(如 ASP.NET MVC 控制器测试中的 suggested by this MS article)。
顺便说一句,当我测试 ViewData 时,一切都在那里并且正确。
这是我的代码...
public ActionResult Index(int? page, string tag)
{
if (page == null || page <= 0)
{
page = 1;
}
var viewData = new IndexViewData
{
... my property setters, etc ...
};
return View(viewData);
}
[TestMethod]
public void Index_Action_Should_Return_Index_View_For_Default_HomePage()
{
// Arrange.
var controller = PostController; // Wrapper, cause I use D.I.
// Act.
ViewResult viewResult = controller.Index(null, null) as ViewResult;
// Assert.
Assert.IsNotNull(viewResult);
Assert.AreEqual("Index", viewResult.ViewName); // This is false/fails.
var indexViewData = viewResult.ViewData.Model as IndexViewData;
Assert.IsNotNull(indexViewData); // This is true.
}
【问题讨论】:
标签: asp.net-mvc unit-testing controller