Я делаю несколько простых тестов MS на моем стандарте, ничего специального контроллера.
Когда я проверяю свойство ViewName
, из возвращаемого объекта ViewResult
, он ""
(пустой).
У меня создается впечатление, что ViewName
подразумевается именем View
(как предложенным в этой статье MS при тестировании контроллера ASP.NET MVC).
Кстати, когда я тестирую 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.
}