Почему мой тест контроллера не работает, имя представления возвращается пустым

#asp.net-mvc #nunit

#asp.net-mvc #nunit

Вопрос:

Выполнение простого теста для проверки имени представления для действия контроллера:

   var controller = new UserController();

  var result = controller.Login() as ViewResu<

  Assert.AreEqual("Login", result.ViewName);
  

Результат.ViewName возвращается с «», почему это должно быть?

Ответ №1:

Вы указываете имя представления в методе входа контроллера или оставляете его значением по умолчанию (которое равно «»)?

Если вы оставляете его со значением по умолчанию, которое является обычным, вам нужно проверить строку.Пустое вместо «Войти».

Комментарии:

1. Да, значение по умолчанию, о, я вижу, поэтому оно разрешает имя дальше по стеку, тогда ок, спасибо.

2. ДА. И извините, я забыл упомянуть об этом. Замена не выполняется до тех пор, пока не будет отображено представление, которое будет позже в потоке обработки.

Ответ №2:

если у вас есть такой вид

  public ActionResult Index()
  {
   return View();
  }
  

тогда свойство ViewName примет значение по умолчанию, равное «», и если вы укажете имя представления таким образом, оно будет работать нормально

  public ActionResult Index()
  {
   return View("Index");
  }