asp.net модель тестирования mvc, возвращенная контроллером ActionResult

#asp.net-mvc

#asp.net-mvc

Вопрос:

От контроллера Action :

 return PartialView("Page1",obj);
  

Теперь в MVC тестировании я должен проверить, является ли obj экземпляром CLASS: ClassObj

Я пытаюсь

 var actualResult=controller.getObj();
Assert.IsInstanceOf(ClassObj,actualResult,"Fail");
  

но проблема в том, что actualResult является PartialViewResult.
Как я могу получить модель из него?
Спасибо.

Ответ №1:

Вы можете посмотреть на свойство ViewData результирующего объекта.

от контроллера:

 ViewData["data"] = obj;
  

в тесте:

 var result = controller.Action();
Assert.IsOfType<PartialViewResult>(result);

var data = ((PartialViewResult)result).ViewData["data"];
  

Или, если представление введено, вы можете получить доступ к модели напрямую. (Я не совсем уверен в коде, вам нужно его протестировать).

 var data =  (ViewPage<ModelType>((PartialViewResult)result).View).Model;
  

Комментарии:

1. если представление введено, то вы могли бы получить доступ к модели напрямую?? Как это делается?

2. Там будет поле Модели. Я попытаюсь добавить ее к примеру.