[英]I cant figure out whats wrong with my MVC unit test code
好的,伙计们,我是MVC的新手,我正尝试从教程中学习,我完全按照说的做,但这使我失望
测试方法TestProject1.UnitTest1.DisplayCustomer引发异常:System.NullReferenceException:对象引用未设置为对象的实例。 当我尝试运行单元测试时
我正在从这里关注教程http://www.codeproject.com/Articles/259560/Learn-MVC-Model-view-controller-Step-by-Step-in-7
这是我的文件:
DisplayCustomer视图
Customer ID is : <%= Model.Id %>
Customer ID is : <%= Model.CustomerCode %>
<% if (Model.Amount >100) {%>
This is a Previlaged Customer
<%} else { %>
This is a Normal Customer
<% } %>
填写客户视图:
<form action="DisplayCustomer" method = "post">
Customer ID : <input type="text" name="CustomerId" /></br>
Customer Code : <input type="text" name="CustomerCode" /></br>
Customer Amount : <input type="text" name="CustomerAmount" /></br>
<input type="submit" value="Click Here"/></br>
</form>
客户模型:
public class Customer
{
public int Id { set; get; }
public string CustomerCode { set; get; }
public double Amount { set; get; }
}
CustomerController
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult Index()
{
return View();
}
public ActionResult FillCustomer()
{
return View();
}
public ActionResult DisplayCustomer()
{
Customer objCustomer = new Customer();
objCustomer.Id = 10;
objCustomer.CustomerCode = "Sparkz";
objCustomer.Amount = 10.55;
var myview = View(objCustomer);
return myview;
}
}
我的单元测试File(UnitTest1.cs):在这里,我尝试了注释的代码和我在下面编写的代码,但均无效。 它总是在var customerViewViewResult / varresult中获取null。
[TestClass]
public class UnitTest1
{
[TestMethod]
public void DisplayCustomer()
{
//CustomerController obj = new CustomerController();
//var varresult = obj.DisplayCustomer() as ViewResult;
//Assert.AreEqual("DisplayCustomer", varresult.ViewName);
CustomerController controller = new CustomerController();
var customer = new Customer();
var customerViewActionResult = controller.DisplayCustomer();
var customerViewViewResult = customerViewActionResult as ViewResult;
Assert.AreEqual("DisplayCustomer", customerViewViewResult.ViewName);
}
}
我正在从这里关注教程
在本教程中, DisplayCustomer
的返回类型是ViewResult
,而不是ActionResult
// As stated in the tutorial
public ViewResult DisplayCustomer()
{
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.