J'utilise this type de câblage pour mon MVC et je veux tester le contrôleur. Jusqu'ici, j'ai trouvé deux manières: soit mes événements d'envoi de vue fictive ou mon contrôleur exposent des méthodes publiques. L'envoi d'événements semble être le chemin à suivre (comme indiqué dans une réponse), mais si ma vue est un simple objet simulé, comment répartir ces événements?Les objets simulés doivent-ils répartir les événements?
Répondre
Si votre vue distribue normalement des événements, la meilleure chose à faire est que vos objets fictifs le fassent également. Les objets simulés sont destinés à se moquer de l'interface et les événements distribués font partie de cette interface (bien que ce ne soit pas toujours une partie bien documentée et visible). Cela signifie également que vous testez les contrôleurs de la même manière qu'ils seront utilisés.
Bien sûr, si votre vue ne distribue pas les événements normalement, je suppose qu'elle utilise normalement des méthodes publiques et vous devriez faire de même.
Puisque vous n'avez pas tagué la question avec une langue, je ne sais pas si cela fonctionnera, mais avez-vous envisagé d'utiliser la réflexion et d'exercer les méthodes du contrôleur protégé/privé de cette façon? À mon avis, vous devriez tester que la méthode fonctionne correctement, vous pouvez le faire en l'invoquant par la réflexion si votre langage le supporte. Vous aurez besoin d'autres tests pour vous assurer que vos gestionnaires d'événements sont correctement configurés ou si vous avez du code que vous avez écrit qui distribue les événements, vous devrez tester que les événements sont correctement distribués.
- 1. Comment répartir l'événement entre les composants dans Flex?
- 2. WPF Événements et références aux objets, et comment les gérer
- 3. Gestion des événements pour les objets liés en retard
- 4. Conception - comment gérer les événements sur les objets persistants lorsqu'ils changent d'état?
- 5. Comment améliorer les événements PropertyChanged?
- 6. Transfert/relayer les événements .NET
- 7. Chaînage les événements
- 8. Substituer les événements JCS
- 9. annuler les événements souris
- 10. IoC et les événements
- 11. Javascript - charge les événements pour les éléments incorporés
- 12. ASP.NET et les objets
- 13. Quand utiliser les événements C# personnalisés
- 14. iphone: problème avec les événements
- 15. Les événements s'accumulent pendant CashDrawer.WaitForDrawerClose
- 16. C# Gérer les événements Windows
- 17. Comprendre les événements de domaine
- 18. événements pour les éléments imbriqués
- 19. Quelles sont les différences entre les délégués et les événements?
- 20. Liste des objets Mock (QMC) - les meilleures pratiques/simplification
- 21. Utilisation d'objets simulés en dehors des tests, mauvaise pratique?
- 22. Existe-t-il un outil pour surveiller les objets de synchronisation (mutex, événements, sémaphores) dans Windows?
- 23. En prototype existe-t-il un moyen d'évaluer ce qui écoute les événements dom objets?
- 24. Événements de minuterie et d'animation qui troncent les événements TouchesEnded
- 25. Espionnage sur les objets COM
- 26. MySQL: comptez les objets groupés?
- 27. Comment désactiver les objets Combobox?
- 28. Comparaison entre les objets Javascript
- 29. Les événements personnalisés d'une interface remplacent-ils les événements Form par défaut?
- 30. Comment appeler les événements dans les interfaces C#?
Mais alors, comment puis-je déclencher ces événements si ma vue est "bête"? – subb
Cela signifie ajouter quelques trucs supplémentaires à vos mocks, mais je voudrais avoir des méthodes qui peuvent déclencher certains événements que vous appelez alors de vos tests. 'viewMock.dispatchClickEvent()' ou similaire. – workmad3