我正在编写单元测试,我称之为这样的动作方法
var result = controller.Action(123);
结果是ActionResult,我需要得到这个模型,任何人都知道如何做到这一点?
解决方法
在我的ASP.NET MVC版本中,Controller上没有Action方法。但是,如果您指的是View方法,那么您可以单元测试结果包含正确的模型。
首先,如果只从特定Action中返回ViewResult,请将该方法声明为returning ViewResult instead of ActionResult。
例如,考虑这个Index操作
public ViewResult Index() { return this.View(this.userViewModelService.GetUsers()); }
你可以很容易地得到这个模型
var result = sut.Index().ViewData.Model;
如果方法签名的返回类型是ActionResult而不是ViewResult,则需要先将其转换为ViewResult。