asp.net mvc测试模型由控制器ActionResult返回

时间:2011-04-12 09:41:03

标签: asp.net-mvc

来自控制器Action

return PartialView("Page1",obj);

现在在MVC测试中,我必须测试obj是否是CLASS: ClassObj的实例

我正在尝试

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

但问题是actualResult是PartialViewResult。 我如何从中获得模型? 感谢。

1 个答案:

答案 0 :(得分: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;