2011-10-23 66 views
0

CustomerController.cs: -Asp.net MVC测试

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 ViewResult; 
    Customer cust = result.ViewData.Model as Customer; 
    Assert.AreEqual(5,cust.CustId); 

} 

我的测试失败,我收到以下错误消息话题: 试验方法MvcApplication1.Tests。 Controllers.CustomerControllerTest.TestDetailsViewData引发异常: System.NullReferenceException:未将对象引用设置为对象的实例。

+0

当您使用调试程序遍历代码时会发生什么?哪一行抛出异常? – Amy

+0

我认为它无法使用CustomerDataContext ....是否可以测试上下文? –

+0

问题解决了!这是datacontext问题。我没有在我的测试项目中的连接字符串。现在它的工作。 –

回答

0

问题已解决。 它只是没有连接字符串。