Re: Mockito test
jerome moliere <[email protected]> Tue, 8 Feb 2011 11:55:13 +0100
| Newsgroups | gmane.comp.java.french.general |
|---|---|
| Message-ID | <[email protected]> |
Le 4 février 2011 11:24, Laurent Forêt <[email protected]> a écrit : > Merci Jérôme pour ta sollicitude , je me sens moins seul sur ce coup là :). > > Salut laurent, mais de rien ....j 'ai un peu de temps aujourd''hui si ce n'est pas trop tard > En fait le bug est assez facile à reproduire c'est un service/EJB/Component > A coder dans un module éponyme A > qui passe un mauvais paramètre au service B coder dans un module éponyme > B. Le bug est dans A mais est détecté dans B. > > ok je vois mieux... > La question que je me pose donc est comment valider la correction de A sans > avoir à faire un test d'intégration de B. > si je ne m'abuse ta question sous entend , comment tester que A remplit son contrat ? par définition c'est dans A que cela se passe non? B lui doit avoir des préconditions le prémunissant de valeurs folles envoyées par A pas plus... > Je pensais à première vue couper la poire en deux injecter mon service B > dans A et mocker toutes les injections des services dont dépendaient B mais > c'est fastidieux pénible et complètement hors de propos dans le cadre d'un > test du module A. D'ou une idée de mocker jusqu'au moment ou je suis sur > que le bout de code de B qui plantait soit passé, mais ça, ça implique une > bonne connaissance du code de B qui peut à tout moment changer. > > je suis d'accord tu ne peux te permettre de faire cela > Après il y a une autre solution qui consiste à valider tout simplement > comme B le paramètre généré par A . Mais cela implique tout d'abord un > refactoring de A pour pouvoir intercepter le paramètre incriminé (solution > chirurgicale qui me parait pas opportune). Mais aussi, il faut recoder dans > le test de A la validation de ce même paramètre (duplication de code) ou > encore utiliser directement le code de validation du paramètre dans B (mais > la ca redevient un test d'intégration de B). > > ton paramètre doit etre complexe pour nécessiter une telle complexité ... dans ta méthode de A appelée depuis B tu dois tester la correction de ce paramètre , c'est bien du test unitaire de A dans un contexte peut etre spécial mais cela reste du test unitaire du composant me semble t'il.... Donc même si cela ne t'arrange pas , je dirai que cela doit être fait à ce niveau My 2 cents Jerome -- J.MOLIERE - Mentor/J auteur Eyrolles