0
NUnit, MvcContrib.TestHelper 패키지를 사용하여 MVC3 사이트를 테스트하는 유닛에서 작업하고 있지만 테스트 메소드가 컨트롤러에 액세스 할 때 "객체 참조가 객체의 인스턴스로 설정되지 않았습니다"예외가 발생합니다. TryUpdateModel을 가지고 있습니다. 나는 시험을 통과하기 위해 무엇을해야하는지 모른다. 이걸 좀 도와주세요.단위 테스트 컨트롤러가
나는 또한 그것을 위해 코드를 제공하고있다 :
액션 컨트롤러에서 테스트 메소드 호출, 아래와 같습니다 :
public JsonResult AddPatient()
{
bool returnStatus;
string returnErrorMessage;
List<string> returnMessage;
PatientBLL patientBLL = new PatientBLL();
Models.PatientViewModel patientViewModel = new Models.PatientViewModel();
TryUpdateModel(patientViewModel);
Patient patient = patientBLL.AddPatient(
patientViewModel,
out returnMessage,
out returnStatus,
out returnErrorMessage);
patientViewModel.UpdateViewModel(patient, typeof(Patient).GetProperties());
patientViewModel.ReturnMessage = returnMessage;
patientViewModel.ReturnStatus = returnStatus;
return Json(patientViewModel);
}
아래 주어진 위의 작업을 호출하는 시험 방법을 :
[Test]
public void Test_AddPatient()
{
TestControllerBuilder builder = new TestControllerBuilder();
string uniquePatientKey = GenerateUniqueID();
builder.Form["MedicalID"] = uniquePatientKey;
builder.Form["SocialSecurityNumber"] = uniquePatientKey;
builder.Form["FirstName"] = "Khushi";
builder.Form["LastName"] = "Maahi";
builder.Form["AddressLine1"] = "ABCD";
builder.Form["AddressLine2"] = "Technologies";
builder.Form["City"] = "OOna";
builder.Form["State"] = "UP";
builder.Form["ZipCode"] = "98456-7329";
builder.Form["PhoneNumber"] = "(425)882-8080";
builder.Form["DateOfBirth"] = "10/28/1987";
builder.Form["PatientDateOfBirth"] = "10/28/1987";
builder.Form["EffectiveDate"] = "01/01/1995";
builder.Form["PatientEffectiveDate"] = "01/01/1995";
PatientController patientController = builder.CreateController<PatientController>();
JsonResult jsonResult = (JsonResult)patientController.AddPatient();
dynamic jsonData = jsonResult.Data;
string jsonMessage=Convert.ToString(jsonData.ReturnMessage);
Assert.AreEqual(jsonData.ReturnStatus, true);
Assert.Greater(jsonData.PatientID, 0);
}
제게 문제에 대한 해결책을 제공해주십시오.
이 테스트를 디버그 모드에서 실행하고 실제로 실패한 행을 알려 주면 도움이됩니다. Ctrl + R, Ctrl + T를 눌러 디버그 모드로 테스트를 실행합니다. – mattypiper
그 작업을 시도했는데 디버그 모드가 Action from Test 메서드의 TryUpdateModel() 문에 도달하면이 오류가 발생합니다. – Nupur