Я не могу понять, что не так с моим кодом модульного тестирования MVC

1

ладно, ребята, я новичок в 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;
    }

}

Мой тестовый файл (UnitTest1.cs): Здесь я пробовал оба кода прокомментировал один и тот, который я написал ниже, но не работаю. Он всегда выбирает нуль в var customerViewViewResult/varresult

[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);
    }
}
Теги:
asp.net-mvc

1 ответ

1
Лучший ответ

Я следую учебнику отсюда

В учебнике возвращаемый тип DisplayCustomer - ViewResult, а не ActionResult

// As stated in the tutorial
public ViewResult DisplayCustomer()
{
    ...
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню