Получено исключение NullReferenceException при модульном тестировании контроллера - PullRequest
0 голосов
/ 29 ноября 2011

Я работаю над модульным тестированием сайта MVC3 с использованием пакета NUnit, MvcContrib.TestHelper, но я сталкиваюсь с исключением "Ссылка на объект не установлена ​​на экземпляр объекта", когда мой метод тестирования обращается к контроллеру с 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);


    }

Пожалуйста, дайте мне решение для моей проблемы.

1 Ответ

0 голосов
/ 02 декабря 2011

У вас есть ноль где-то в PatientViewModel. Можете ли вы опубликовать этот тип здесь? Это может быть проблема с микшированием моделей и просмотра моделей .

...