我在名为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);
它不显示视图名称。但是肯定会返回Login视图。我想知道为什么没有设置视图名称?我认为它默认为动作结果方法名称?
答案 0 :(得分:2)
仅在返回视图时设置viewName
参数时才设置ViewName。例如:
return View("Login", model);
否则,如果未设置视图名称,则使用默认视图。
因此,要测试默认视图,应写入断言:
Assert.AreEqual("", ((ViewResult)result).ViewName);