0
我在單位工作的測試使用NUnit,MvcContrib.TestHelper包,但我面對異常的MVC3網站「不設置到對象的實例對象引用」時,我的測試方法訪問控制器有TryUpdateModel。我不知道該怎麼做才能通過測試。請幫助我。從控制器得到的NullReferenceException當單元測試控制器
操作哪個測試方法調用,在下面給出:
我也給人一種代碼爲
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
我試圖做到這一點,當調試模式達到TryUpdateModel從試驗方法操作()語句它給這個錯誤。 – Nupur