#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:
Проблема решена. У него просто не было строки подключения.