Asp.net тестирование mvc

#asp.net-mvc #testing

#asp.net-mvc #тестирование

Вопрос:

CustomerController.cs:-

 public ActionResult Details(int id)
    {
        CustomerDataContext cs = new CustomerDataContext();
        var query = cs.Customers.Where(m => m.CustId == id).Select(m => m);
        Customer cust = new Customer();
        foreach (var q in query)
        {

            cust.CustId = q.CustId;
            cust.Name = q.Name;
            cust.Salary = q.Salary;
            cust.JoiningDate = q.JoiningDate;
        }
        return View("Details",cust);
    }
  

CustomerControllerTest.cs:-

 [TestMethod]
public void TestDetailsViewData()
{
    CustomerController controller = new CustomerController();
    var result = controller.Details(5) as ViewResu<
    Customer cust = result.ViewData.Model as Customer;
    Assert.AreEqual(5,cust.CustId);

}
  

Мой тест завершается с ошибкой, и я получаю следующее сообщение об ошибке:
Метод тестирования MvcApplication1.Тесты.Controllers.CustomerControllerTest.TestDetailsViewData выдал исключение:
Исключение System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.

Комментарии:

1. Что происходит, когда вы пошагово просматриваете свой код с помощью отладчика? Какая строка выдает исключение?

2. Я думаю, что он не может использовать CustomerDataContext….Is контекст, доступный для тестирования?

3. Проблема решена! Это была проблема с datacontext. У меня не было строки подключения в моем тестовом проекте. Теперь он работает.

Ответ №1:

Проблема решена. У него просто не было строки подключения.