Faisant suite à un précédent article sur l’implémentation d’un contrôleur MVC pour l’interopérabilité MFC<->Windows Forms<->WPF et qui en mentionnait la testabilité, cet article se propose de détailler l’implémentation de ce contrôleur ainsi que la manière de tester la logique d’une couche IHM hors IHM elle-même (nous reviendrons sur ce point à la fin de l’article).
La philosophie du pattern MVC est d’introduire un découplage entre le rendu graphique de l’application, son fonctionnement et les données qu’elle affiche. Ces trois rôles sont symbolisés par l’acronyme MVC qui s’exprime de la manière suivante :
· M pour Model : les données de l’application,
· V pour View : c’est le rendu graphique des données de l’application,
· C pour Controller : c’est la logique de l’IHM.
Sans détailler plus avant le pattern MVC (il existe nombre d’articles sur le sujet sur le Web), il est intéressant de noter que les formes d’implémentation du pattern sont diverses et variées et que le pattern MVC peut se retrouver sous d’autres formes variantes (tel que le pattern MVP par exemple).
Dans cet article, nous proposons une implémentation concrète d’un pattern MVC dont l’objectif est de permettre d’appliquer des tests (unitaires ou d’intégration) sur la partie contrôleur. L’implémentation recherche à permettre l’automatisation de tests sur la logique de présentation. Cette démarche est très similaire à celle qui consiste à tester unitairement des instances de classes métier / données dans Visual Studio 2008. Cet IDE ne propose pas d’outil de génération et d’exécution automatique de tests d’IHM Windows bien qu’il existe un outil similaire pour les applications Web (encore un fois, nous reviendrons sur ce point en fin d’article pour expliquer les solutions actuelles qui peuvent être envisagées dans ce cas). Ainsi, sans outil de tests, la conception MVC peut nous permettre d’isoler la logique de l’interface utilisateur afin de bénéficier des outils de tests standards de Visual Studio. Lire l'article...