Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Fathi Bellahcene

.Net m'a tuer!

TDD avec Visual Studio 2012 : Part2/3

Je vous propose de partager avec vous cet article grandement inspiré de l’article publié dans le magazine Programmez et écrit avec Jason De Oliveira. Je tiens également à préciser que le but de cet article est surtout de montrer qu’avec les nouveautés apportés dans Visual Studio 2012, l’application du TDD quelque soit la technologie et le framework de test que l’on souhaite utiliser est grandement facilité.

Je vais donc faire trois posts avec les thèmes suivants:

Part 1: rappel sur le TDD + Nouveautés

Part 2 : (Nouveautés fin) + Améliorations ergonomique

Part 3 : Exemple d’application du TDD

 

Part 2/3:

 

Fakes Framework (Stubs et Shims)

Visual Studio 2012 a également intégré le « Fakes Framework » issu du projet « Moles » créé­­ par l’équipe Microsoft Research. Ce framework sera disponible uniquement avec la version Ultimate de Visual Studio 2012.

Le but de cet outil est de permettre aux équipes de développement de produire rapidement et facilement des tests unitaires. Pour cela, le « Fakes Framework » introduit deux notions :

· Les Stubs : ce sont des implémentations d’interfaces ou de classes abstraites automatiques pouvant être utilisées par les tests afin d’isoler la partie à tester unitairement.

· Les Shims : ce sont des mécanismes qui interceptent des appels de méthodes au run-time et les remplacent par d’autres. Les Shims peuvent être utilisés pour isoler les appels vers des méthodes contenues dans des objets qui ne peuvent normalement pas être « mockés ». Par exemple, il est impossible de tester unitairement des méthodes faisant appel à certains objets du framework .NET. Grâce aux Shims, il est possible de rediriger les appels vers ses propres implémentations.

Les classes du framework .NET incluses dans les namespaces « mscorlib » et « system » ne peuvent pas avoir de « Fake Assembly ». On ne pourra donc malheureusement pas créer de Shims pour la classe « System.Configuration.ConfigurationManager » par exemple.

Le « Fakes Framework » apportent un réel plus par rapport à des framework de tests existants (comme RhinoMock) qui poussent souvent les développeurs à modifier leur code fonctionnel pour pouvoir effectuer des tests unitaires.

Vous trouverez également un post dans mon blog à ce sujet ici

Gestion des tests via Test Explorer

La première impression à l’ouverture de la fenêtre « Test Explorer » est très positive. Voici les principaux changements apportés :

· Les panneaux « Test View » et « Test Results » ont été supprimés et remplacés par le « Test Explorer », ceci améliore l’interaction entre le développement (le code) et les tests.

· L’interface est simple mais efficace : toutes les informations sont accessibles par simple clic de la souris de manière parfaitement intuitive.

· Les tests sont regroupés en fonction de leur statut (failed, passed,…) et les premiers tests visibles sont ceux en échec : ceux qui intéressent en priorité les développeurs. De plus, il n’y a plus besoin de passer par le panneau « Test Results » pour accéder aux sources du test, un simple double clic permet d’atteindre les sources. On regrettera au passage que les tests ne peuvent toujours pas s’afficher sous forme hiérarchique.

· L’exécution de l’analyse de la couverture du code est simplifiée. Dans les versions précédentes, lancer une couverture de test était certes simple mais pas très intuitif : vous deviez créer un fichier de configuration, le configurer, le lancer depuis le menu Visual Studio et ouvrir la fenêtre adéquate pour obtenir le résultat. Avec Visual Studio 2012, tout cela est plus facile car tout est intégré dans l’interface du « Test Explorer ». Le lancement d’une analyse de la couverture du code se fait directement avec la souris.

Post Build Test Runs

Une bonne habitude à adopter lors de l’application du TDD est d’exécuter les tests unitaires le plus souvent possible pour s’apercevoir au plus tôt d’un dysfonctionnement ou d’une éventuelle régression. Il existe dans la nouvelle version de Visual Studio 2012 la possibilité d’activer l’exécution des tests unitaires après chaque compilation. Ceci est disponible dans le menu « Test/Test Settings » :

Fig7_RunTestsAfterBuild

Mais aussi directement depuis le « Test Explorer ». De plus, les tests unitaires tournent sur un Thread d’arrière-plan, la productivité des développeurs n’étant donc pas impactée.

Compatibilité ascendante entre Visual Studio 2010 et Visual Studio 2012

Ceux qui, comme nous, ont déjà effectué la migration des tests unitaires de Visual Studio 2008 vers Visual Studio 2010, ont pu rencontrer quelques difficultés et quelques bugs car la migration n’était pas transparente et parfois complexe. Cette opération était fort pénible, dans certains cas, la migration des applications devait même être forcée vers le framework .NET 4.0 !

Rassurez-vous, avec Visual Studio 2012, vous n’aurez aucun problème de ce type, car les composants utilisés sont les mêmes que ceux utilisés par Visual Studio 2010. En effet, le composant actuel est encore « Microsoft.VisualStudio.QualityTools.unitTestFramework.dll » dans la version 10.0.0.0 et utilise toujours le runtime .NET v2.0.50727.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 9 octobre 2012 21:01 par fathi

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01