Я знаю основную идею принципа грома (один объект входит, один объект уходит), но я не видел ни одного реального примера этого в asp.net mvc.
Это хороший пример принципа грома
public ActionResult Index(Employee employee)
{
//some actions here
return View(employeeViewModel);
}
А как же утверждение
Классы контроллера никогда не будут
непосредственно подвержены чему-либо связанному
HttpContext
Как должен выглядеть призыватель действий? Не могли бы вы привести примеры и юнит-тесты для него?
из http://codebetter.com/blogs/jeremy.miller/archive/2008/10/23/our-opinions-on-the-asp-net-mvc-introducing-the-thunderdome-principle.aspx
«Принцип Thunderdome» - все методы Controller принимают один объект ViewModel (или ноль объектов в некоторых случаях) и возвращают один объект ViewModel (один объект входит, один объект покидает). Классы Controller НИКОГДА не будут напрямую подвергаться воздействию всего, что связано с HttpContext. Ничто так не заставляет меня плакать, как видеть людей, пытающихся написать тесты, которые высмеивают или заглушают новый интерфейс IHttpContextWrapper. Аналогично, методы Controller не возвращают объекты ViewResult и, как правило, отделены от всей инфраструктуры MVC. Мы очень рано приняли эту стратегию, чтобы сделать механическое тестирование контроллера проще.
Но я хочу знать, как это сделать? как написать такой контроллер действия invoker? потому что обычно мы должны издеваться над httpcontext