我有一个模拟挑战 - 我使用MVC 3与nunit框架,并试图模拟一个控制器有一个HttpPostedFileBase作为参数。控制器签名如下所示:传递一个MVC 3控制器参数的模拟HttpPostedFileBase
public ActionResult UploadAttachment(AttachmentViewModel clientAttachment, HttpPostedFileBase file, string clientName)
我建立了我的“文件”参数模拟参考,但抱怨说,它不会采取模仿对象。我猜想我需要为这个场景设置一个ControllerContext,但是我也没有任何运气。对于第一次测试,我只需要HttpPostedFileBase返回一个空文件(在空白文件引用进入的情况下)。我也读过Scott Hanselman关于这个主题的优秀文章(computer Zen)。这似乎是MVC部分中关键句,我担心的是“当你创建自己的ControllerContext时,你将在Webserver外运行时(如在测试中)获得一个动态生成的HttpRequestBase派生模型。”这似乎是我跑进墙壁的地方。
我知道我需要这些元素:
controller.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), controller);
mockContext.SetupGet(c => c.Request).Returns(mockRequest.Object);
mockRequest.Setup(c => c.HttpMethod).Returns([not sure what to evoke here]);
我在被卡住的状态。感谢您向正确的方向提供任何建议或推动。
“人 - 秒”的工作,辉煌 – BozoJoe 2014-04-10 06:01:57