我正在对我的标准进行一些简单的 MS 单元测试,没有什么特别的控制器。
当我ViewName
从返回的ViewResult
对象中检查属性时,它是""
(空的)。
我的印象ViewName
是View
(正如这篇 关于 ASP.NET MVC 控制器测试的 MS 文章所建议的那样)。
顺便说一句,当我测试 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.
}