Здравствуйте, я новичок в разработке TDD.
Я наткнулся на этот пост для Использование asp.net mvc для загрузки файла
Фил Хаак утверждает, что класс можно использовать для управления загрузкой файлов, в котором он использует HttpFileCollectionValueProvider по умолчанию:
[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» в форме html и как параметр синтаксического анализа в контроллере Index.
У меня есть два вопроса:
1. Как я могу проверить метод file.SaveAs?
2. Я не совсем уверен, как провести модульное тестирование с этим. В тестовом файле контроллера у меня должен быть поддельный HttpPostedFileBase, но он запечатан. У кого-нибудь есть какие-то стратегии для борьбы с этим?
Большое спасибо!