2008-08-26 3 views
1

В обращении с формой поста у меня есть что-то вродеЛучший способ модульного тестирования ASP.NET MVC методы действий, которые используют BindingHelperExtensions.UpdateFrom?

public ActionResult Insert() 
    { 
     Order order = new Order(); 
     BindingHelperExtensions.UpdateFrom(order, this.Request.Form); 

     this.orderService.Save(order); 

     return this.RedirectToAction("Details", new { id = order.ID }); 
    } 

Я не использую явные параметры в методе, как я ожидаю того, чтобы адаптироваться к различному числу полей и т.д., и способу с 20+ параметров не апеллируя ,

Я полагаю, что мой единственный вариант - это макет всего HttpRequest, эквивалентный тому, что сделал Rob Conery. Это лучшая практика? Трудно сказать с каркасом, который является настолько новым.

Я также видел решения, связанные с использованием ActionFilter, так что вы можете преобразовать выше метод подписи к чему-то вроде

[SomeFilter] 
public Insert(Contact contact) 

ответ

1

Я теперь с помощью ModelBinder так, что мой метод действия может выглядеть (в основном), как:

public ActionResult Insert(Contact contact) 
    { 

     if (this.ViewData.ModelState.IsValid) 
     { 
      this.contactService.SaveContact(contact); 

      return this.RedirectToAction("Details", new { id = contact.ID }); 
     } 
     else 
     { 
      return this.RedirectToAction("Create"); 
     } 
    } 
0

Заверните его в интерфейсе и издеваются его.

Смежные вопросы