Je connais l'idée de base du principe du tonnerre (un objet entre, un objet sort) mais je n'en ai vu aucun exemple réel dans asp.net mvc. Est-il bon exemple de thunderdome principethunderdome action invoker asp.net mvc
public ActionResult Index(Employee employee)
{
//some actions here
return View(employeeViewModel);
}
Mais qu'en est-déclaration
Les classes de contrôleur ne sera jamais directement exposé à tout ce qui touche à HttpContext
Comment l'invocateur d'action devrait ressembler? Pourriez-vous fournir quelques exemples et tests unitaires pour cela?
Le « Thunderdome Principe » - Toutes les méthodes de contrôleur prennent dans un objet ViewModel (ou zéro objets dans certains cas) et le retour d'un seul objet ViewModel (un objet entre, un objet feuilles) . Les classes Controller ne seront JAMAIS directement exposées à quoi que ce soit lié à HttpContext. Rien ne me fait pleurer comme voir des gens essayer d'écrire des tests qui se moquent de cette nouvelle interface IHttpContextWrapper. De même, les méthodes Controller ne renvoient pas d'objets ViewResult et sont généralement découplées de toute l'infrastructure MVC. Nous avons adopté cette stratégie très tôt afin de simplifier mécaniquement les tests du contrôleur.
Mais je veux savoir comment faire? comment écrire un tel invocateur d'action de contrôleur? Parce que nous devons normalement nous moquer de httpcontext
Oui, mais qu'en est-il de cacher httpcontext ?? et à propos de tester un tel contrôleur? –
Si vous le laissez comme ceci, que vous devrez reprendre vos tests à ce qui se passe dans le service, supposons que vous testerez dans ce cas seulement les possibilités qui proviennent des dépôts. Si vous voulez aller dans HttpContext que vous pouvez utiliser des idées de piraté: voir http://haacked.com/archive/2007/12/09/writing-unit-tests-for-controller-actions.aspx – diadiora