Plusieurs sites Web asp.net mvc utilisent le même contrôleur et le même modèle.
Cette logique commune est placée dans des bibliothèques séparées. Ces bibliothèques utilisent HttpContext.Current.Session. Comment puis-je tester ces unités? Je lis à propos de StateValue mais je n'arrive pas à le saisir complètement. Où devrais-je obtenir cette chose StateValue? Est-ce une référence lib?Comment faire pour tester la bibliothèque de test qui repose sur l'objet Session
Répondre
Vous pouvez utiliser des aides telles que des simulacres vu here
J'ai trouvé l'utilisation de Moq très facile dans de telles situations. +1 à vous. – Perpetualcoder
- Votre code devrait utiliser IHttpSessionState pas HttpSessionState.
- Si vous recherchez la documentation MSDN pour IHttpSessionState, vous trouverez un exemple d'implémentation que vous pouvez soulever dans votre projet de test d'unité pour créer une session fictive.
- Remplacez le code en acquérant la session avec un délégué statique renvoyant IHttpSessionState.
- Initialiser ce délégué statique avec une fonction qui utilise HttpContext.Current.Session.
- Lors du test d'unité, remplacez le délégué par votre implémentation Mock de IHttpSessionState.
Bien que cela semble merveilleux, il faudra que j'écrive une maquette complète de IHttpSessionState. Alors que cette StateValue que j'ai référencé semble m'offrir un système où je n'ai plus à m'inquiéter s'il y a une session ou pas. –
Puisque vous avez déjà une base de code, je pense que vous constaterez que l'ajustement rétro de cette fonctionnalité StateValue est plus de travail que de se moquer de l'objet Session. D'autant plus que la documentation vous donne une bonne base pour créer le simulacre pour commencer. – AnthonyWJones
juste pour canaliser les gens sur ce gouffre (ce qui est aussi de .NET 3.5) - ne pas toucher IHttpSessionState à des fins de moqueries et tests:
- 1. Comment tester User Control avec une unité qui repose sur l'objet Session
- 2. Comment faire pour que la barre d'état de l'iPhone repose sur un UIImageView
- 3. Django 1.0 Test: comment faire pour qu'une session persiste entre le code de test et la vue testée?
- 4. Bibliothèque C++ pour la gestion de session?
- 5. Comment faire pour tester l'application pour Vista
- 6. Comment faire tester vos clients
- 7. PHP: session de test
- 8. Tester si une session Facebook est valide?
- 9. Test d'intégration d'une bibliothèque externe?
- 10. Comment faire pour tester l'objet HttpApplication avec HttpApplicationState
- 11. Outils de test logiciel pour tester l'application web
- 12. Test de ce qui est écrit sur un Java OutputStream
- 13. Comment configurer la structure de cas de test Dojo Objective Harness pour tester le code personnalisé?
- 14. Comment tester pour parfois échoue?
- 15. Qu'est-ce qui pourrait faire disparaître les cookies de session en cours de session?
- 16. Comment faire Test automatique de l'interface utilisateur pour Flash
- 17. Comment tester l'application ASP.NET qui dépend de l'adresse IP
- 18. Comment faire pour bulid l'exe qui se comporte de la même manière dans toutes les machines
- 19. Comment tester l'unité ASR sur Pivotal CRM
- 20. Comment tester une facilité d'utilisation d'une bibliothèque C++ dans configure.in?
- 21. PHP: Comment tester le temps nécessaire pour faire une requête?
- 22. C: bibliothèque de threads POSIX test-suite
- 23. Comment faire pour tester Modèle de base de données joint dans mon projet ASP.NET MVC?
- 24. Faire la promotion d'une bibliothèque gratuite sur le Web
- 25. Comment faire une fausse "session active" pour gconf?
- 26. Une bibliothèque Json qui fonctionne pour Javascript?
- 27. tester des applications python qui utilisent mysql
- 28. Test de code unitaire qui appelle VirtualPathUtility.ToAbsolute
- 29. Comment tester le test pour l'application, la base de données et les changements de date sans fonction déclenchée
- 30. Comment faire pour que le test de junit s'arrête après le premier test de panne
Commander ce post: http://stackoverflow.com/questions/176347/asp-net-mvc-test-controllers-w-sessions-mocking –