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);


    }

请给我问题的解决方案。

4

1 回答 1

0

您在患者视图模型中的某处有一个空值。你可以在这里发布那种类型吗?这可能是混合模型和视图模型的问题

于 2011-12-02T18:31:56.153 回答