MVC控制器类的MS测试用例

时间:2017-05-21 06:51:35

标签: c# asp.net-mvc unit-testing

我将以下操作方法定义为Controller类。

 public ActionResult Register()
        {
            RegisterViewModel model = new RegisterViewModel();
            model.UserType = 2;
            return View(model);
        }

我需要为这些方法编写测试用例。

AccountController controller = new AccountController();
        // Act
        ViewResult result = controller.Register() as ViewResult;
        // Assert
        Assert.AreEqual("Register", result.ViewName);
        RegisterViewModel model = new RegisterViewModel();
         model.UserType = 2;
         Assert.AreEqual(model.UserType, ((RegisterViewModel)result.ViewData.Model).UserType);

以上代码抛出错误说

  

其他信息:Assert.AreEqual失败。预期:。   实际:<>

我理解预期的类型没有返回。但是不知道为控制器动作方法编写测试用例的正确方法是什么。

1 个答案:

答案 0 :(得分:1)

在您的帐户控制器 - 注册方法 - 当您编写返回语句时 - 类似这样 -

return View(model);

尝试提及视图的名称 -

return View("Register", model);

您的单元测试代码应该是这样的 -

          public void DisplayStudent()
          {
             HomeController obj = new HomeController();
             ViewResult result = obj.Index() as ViewResult;
             Assert.AreEqual("Index", result.ViewName);

            Student stud = (Student)result.ViewData.Model;
            Assert.AreEqual("Sachin", stud.StudentName);
          }

尝试相应地进行更改。

如果这有用,请不要忘记将其标记为已回答。 :)