2

我在一个名为 AdminController 的控制器中有一些代码。

public ActionResult Login()
{
    AdminModel model = new AdminModel();
    return View(model);
}

当我在测试方法中检查视图时......

 var result = controller.Login();

 //assert
 Assert.IsInstanceOfType(result, typeof(ViewResult));
 Assert.AreEqual("Login", ((ViewResult)result).ViewName);

它不显示视图名称。但是肯定会返回登录视图。我想知道为什么没有设置视图名称?我以为它默认为动作结果方法名称?

4

1 回答 1

2

viewName仅当您在返回视图时设置参数时才会设置 ViewName 。例如:

return View("Login", model);

否则,如果未设置视图名称,则使用默认视图。

因此,要测试默认视图,您的断言应该写成:

Assert.AreEqual("", ((ViewResult)result).ViewName);
于 2012-05-10T09:02:37.600 回答