9
votes

Comment puis-je fausse httpContext pour des tests unitaires?

J'ai besoin de faux httpcontext.current.application.aplication pour y accéder à partir de mes tests d'unité.

J'ai besoin de stocker mes données quelque part. Je pensais que je peux simplement passer une instance de namevaluecollectionbase mais comme j'ai découvert ce type de base n'a pas d'indexeur, il semble donc trop compliqué à utiliser.

Alors, qu'en est-il de simuler cette partie de httpcontext ? Est-il possible? Comment puis-je le faire? Sera nunit.mocks utile?

Merci d'avance ...


0 commentaires

3 Réponses :


2
votes

2 commentaires

Problème est que s'il s'agit de utilisateur , il est facile de renvoyer un nouvel objet de type iPrincipal , mais en ce qui concerne application alors je dois revenir Quelques httpApplicationState de l'objet qui n'a pas de constructeur public et à cause de celui-ci, il est difficile d'utiliser des indexeurs, il est difficile de simuler avec nunit.mocks ... Pouvez-vous me fournir un exemple de code pour cela Cas?


Bonjour, si vous avez besoin d'index pour nomeucollection BASE, veuillez utiliser ci-dessous Code Public Static iEnumerable > Topairs (cette collection NomValuecollection) {if (Collection == null) {jette nouvelle ArgumentNulLexception ("Collection"); } Retour Collection.Cast (). Sélectionnez (Clé => Nouveau KeyValuePair (clé, collection [clé])); } Pour seulement stocker des données et passer des méthodes de test, veuillez utiliser le code ci-dessus.



1
votes

Si vous avez besoin d'index pour nomeucollection Base, veuillez utiliser le code ci-dessous xxx

pour stocker des données et passer des méthodes de test, veuillez utiliser le code ci-dessus.


0 commentaires

0
votes

Dans ce scénario, je génère des talons dérivés des classes de base dans System.Web.Abstractions. J'utilise souvent cette technique pour les applications MVC lorsque les contrôleurs MVC / WebAPI contiennent une abstraction à httpcontext (httpcontextbasebasebasebasebasebasebasebasebasebasebasebase)

, je peux conclure des exigences httpcontext dans mes tests de l'unité / d'intégration, voici un échantillon ... < Pré> xxx

alors mon test peut établir un contexte de contrôleur et http: xxx

et mon contrôleur est conscient de son état de cache et d'application AMBIAT HTTPONTEXTBASE : xxx


0 commentaires