我有一個模擬挑戰 - 我使用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