2009-06-07 3 views
0

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

1

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.

+0

Mais alors, comment puis-je déclencher ces événements si ma vue est "bête"? – subb

+0

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

0

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.

Questions connexes