私は、標準の特別なコントローラーではなく、いくつかの簡単な 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.
}