2011-11-29 37 views
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); 


    } 

請給我解決我的問題。

+0

如果運行這個測試在調試模式,並告訴我們它實際上沒有在哪一行這將有助於。 CTRL + R,CTRL + T運行在調試模式下測試。 – mattypiper

+0

我試圖做到這一點,當調試模式達到TryUpdateModel從試驗方法操作()語句它給這個錯誤。 – Nupur

回答