Système.Web.Abstractions: de quoi est-il bon?
... absolument rien?
Quelle partie de l'énigme est-il remplir pour ASP.NET WebForms et ASP.NET MVC respectivement?
Pouvez vous en quelque sorte de créer un ASP.NET * base de l'application qui utilise le Système.Web.Les Abstractions de sorte qu'il peut être utilisé dans les deux types de ASP.NET-des applications web?
Dans ce cas, comment ont-ils intégrer les classes dans le Système.Web.Les Abstractions de retour dans ASP.NET WebForms?
Vous ne pouvez pas les nouveaux objets de l'espace de noms, de sorte qu'il ne peut pas être utilisé pour se moquer, peut-il?
Mise à jour: Désolé de ne pas être clair sur ce que je connais le problème avec les tests de HttpContext et d'autres build-it ASP.NET-objets. Mais merci pour les bonnes explications, de toute façon.
- Complètement hors du champ gauche, mais grâce à votre question dans le titre, j'ai maintenant la Guerre par Edwin Starr dans ma tête. 🙁
Vous devez vous connecter pour publier un commentaire.
L'espace de noms contient des types qui sont conçus pour envelopper ASP.NET's des classes de base (tels que HttpSessionState).
Ce que, vous voulez savoir pourquoi?
De nombreux de ces ASP.NET les classes sont scellés ou statique, le rendant impossible à briser les dépendances entre eux et votre code. Cela signifie QUE vous ne pouvez pas se moquer de ces dépendances, le rendant plus difficile à tester votre ASP.NET code. Ainsi, au lieu de manipuler directement la HttpResponse directement dans le code, de le manipuler via le HttpResponseWrapper, qui, pendant le temps d'essai, vous pouvez stub ou une maquette pour contrôler la façon dont l'objet HttpResponse se comporte.
Si vous avez déjà pensé à la création de ces wrappers, ou ont mis en œuvre un ou deux d'entre eux avant, vous savez ce qu'il y a beaucoup de travail enveloppé dans cet espace, et pour ma part, je suis content qu'ils l'ont fait.
Il est en effet pour les moqueries. - HttpContext est une classe scellée et ne peut pas être (facilement) se moque. HttpContextBase n'est pas scellé et je crois que c'est les méthodes sont virtuelles, faire moqueur beaucoup plus facile.
Si vous ne pouvez pas nouveau en place d'une instance de HttpContextBase (par exemple, pour une utilisation dans les Formulaires web), vous pouvez obtenir une instance via: