你好我是TDD開發的新手。
我碰到這個職位Using asp.net mvc to upload file
菲爾哈克指出,一類可用於文件上傳控件,他在其中使用默認HttpFileCollectionValueProvider:如何進行單元測試Asp.net MVC fileUpload
[HttpPost] public ActionResult Index(HttpPostedFileBase file) { if (file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); file.SaveAs(path); } return RedirectToAction("Index"); }
值的形式界定爲
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<input type="submit" />
</form>
請注意,HttpPostedFileBase被解析爲控制器中的參數,其名稱爲「file」,並作爲索引控制器中的解析參數。
我有兩個問題:
1.如何驗證file.SaveAs方法?
2.我不太清楚如何進行單元測試。在測試控制器文件中,我應該有一個假的HttpPostedFileBase,但它是密封的。有沒有人有一些處理這個問題的策略?
非常感謝!
試試這個:[ASP.NET MVC:單元測試文件上傳與Moq](http://csainty.blogspot.com/2009/01/aspnet-mvc-unit-test-file-upload-with.html) – 2011-04-01 15:24:57
感謝您的回答。問題是在Christ的文章中他沒有將HttpPostedFileBase解析爲控制器的參數。但是,在Phil的方法中,控制器應該將HttpPostedFileBase作爲參數綁定到HttpFileCollectionValueProvider。所以這是我的單元測試問題... – Seen 2011-04-01 15:47:15