BT
x Votre opinion compte ! Merci de bien vouloir répondre au sondage InfoQ concernant vos habitudes de lecture !

La virtualisation de Service comme alternative aux mocks

par Jonathan Allen , traduit par Olivier Gonthier le 14 juin 2013 |

Les mocks via injection de dépendances sont souvent difficiles à mettre en place. Même pour les plus simples applications cela nécessite la création de nouvelles interfaces, dépendantes d'un Conteneur IoC, et cela ajoute beaucoup de complexité inutilement. Et après tout ca, vous devrez toujours écrire les mocks eux-mêmes, qui sont rarement nécessaires pour autre chose que de simples tests unitaires.

Des produits comme CA Lisa Service Virtualization offrent une approche alternative. Plutôt que de mocker des classes individuelles, ces outils de tests vous permettent de mocker entièrement des services au niveau réseau. Du point de vue de l'application on communique donc avec un backend, alors qu'en réalité celui-ci n'existe peut être pas encore.

Il y a deux manières communes de mettre en place un service virtuel. La première est de démarrer avec le contrat (WSDL ou un autre descripteur de protocole) et de créer des réponses pré-déterminées. Cela peut se faire manuellement avec du code Java ou .Net, ou vous pouvez utiliser un produit commercial. Un avantage de cette méthode est que l'équipe écrivant le composant n'a pas besoin d'attendre que le service lui-même soit finalisé. Son inconvénient en revanche est que la version réelle doit correspondre à celle étant fausse, rendant cette proposition discutable à cause du temps nécessaire pour la mettre en œuvre.

La seconde possibilité est d'enregistrer le trafic réseau avec un outil positionné entre le composant que l'on teste et ses dépendances en aval. Cet outil agit donc comme un proxy, collectant des informations sur la manière dont interagit le composant. Plus tard ces enregistrements pourront donc être utilisés pour simuler une conversation entre le composant et le serveur dont il dépend.

Les deux possibilités sont viables pour la plupart des protocoles de communication. Avec de bons plugins et de bons filtres, l'outillage de tests devrait être en mesure de comprendre les queues de messages, REST, SOAP, TCP brut, ou d'autres moyens d'échange.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT