1
템플릿을 만들기위한 컨트롤러가 있습니다. 이 컨트롤러는 템플릿 모델을 매개 변수로 사용합니다. 컨트롤러에는 파일 업로드를위한 코드가 들어 있습니다.파일 업로드 단위 테스트
: 이것은 내 컨트롤러public ActionResult Create(Template template)
{
if (ModelState.IsValid)
{
var file = Request.Files["FileName"];
template.FileName = template.TemplateName;
long TemplateId = _templateService.Create(template);
string path = Server.MapPath("~/Templates/Archieve/" + TemplateId);
Directory.CreateDirectory(path);
string archievePath = Server.MapPath("~/Templates/Archieve/" + TemplateId + "/" + "Template" + TemplateId + ".zip");
file.SaveAs(archievePath);
using (ZipFile zip = ZipFile.Read(archievePath))
{
zip.ExtractAll(Server.MapPath("~/Templates/" + TemplateId), ExtractExistingFileAction.DoNotOverwrite);
}
return RedirectToAction("Index");
}
입니다
public class Template
{
public string TemplateName {get; set;}
public string Description {get; set;}
public string FileName {get; set;}
}
이 내 단위 테스트입니다 :
이
내 모델이 얼마나 단위 시험이 코드 ...에 이해가 안 돼요public void Create_Template()
{
//Arrange
var template = new Template()
{
Description = "Description",
FileName = null,
TemplateName = "name"
};
//Act
var result = controller.Create(template) as RedirectToRouteResult;
//Assert
Assert.AreEqual("index", result.RouteValues["action"]);
}
단위 테스트 방법 Request.Files [FileName] 및 Server.MapPath
Request.Files [ "FileName"]에 문제가 있으면 코드가 예외로 처리되며 Assert가 실패합니다. – Ishtiaq
예, 테스트 실행 중 예외가 있습니다. Request.Files [ "FileName"] "코드에 도달하면 테스트를 디버깅 할 때 예외가 발생합니다."개체 참조가 개체 인스턴스로 설정되지 않았습니다. "그리고이 문제를 해결하는 방법은이 예외를 해결하는 방법입니다. @Ish – Ruchi