Bonne pratique de développement JUnit
Résolu/Fermé
Jithel
Messages postés
843
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
31 août 2021
-
Modifié le 7 nov. 2018 à 14:50
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 - 7 nov. 2018 à 16:14
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 - 7 nov. 2018 à 16:14
A voir également:
- Doriane vient d’ouvrir un restaurant à lyon. en plus des actions menées sur son site web, elle souhaite développer la visibilité de son restaurant. pour cela, elle peut utiliser différentes techniques.
- Site de telechargement - Accueil - Outils
- Site pour vendre des objets d'occasion - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment restaurer un pc - Guide
- Ouvrir un fichier .bin - Guide
1 réponse
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
7 nov. 2018 à 15:06
7 nov. 2018 à 15:06
Bonjour,
Je pense que chacun doit voir midi à sa porte, il y a différents "courants de pensées", notamment les puristes qui te diront qu'il faut tout atomiser au plus fin possible, en ce qui me concerne je serais plus pragmatique, les qualités que tu cites "maintenance et l'évolutivité" ne sont pas à négliger, loin de là.
Toutefois, je garderais une seule classe de test par classe de code, parce que lorsque tu utilises des outils d'analyse des résultats de tests, on s'y retrouve plus facilement. Sachant qu'il n'y a pas que des tests unitaires, il y a aussi les tests d'intégrations, moins atomiques mais avec des scénarios plus complexes.
Remarque : dans ton petit code exemple il y aurait déjà bien des choses à améliorer et tester ;-)
Je pense que chacun doit voir midi à sa porte, il y a différents "courants de pensées", notamment les puristes qui te diront qu'il faut tout atomiser au plus fin possible, en ce qui me concerne je serais plus pragmatique, les qualités que tu cites "maintenance et l'évolutivité" ne sont pas à négliger, loin de là.
Toutefois, je garderais une seule classe de test par classe de code, parce que lorsque tu utilises des outils d'analyse des résultats de tests, on s'y retrouve plus facilement. Sachant qu'il n'y a pas que des tests unitaires, il y a aussi les tests d'intégrations, moins atomiques mais avec des scénarios plus complexes.
Remarque : dans ton petit code exemple il y aurait déjà bien des choses à améliorer et tester ;-)
7 nov. 2018 à 15:10
J'aurais voulu avoir une réponse sur l'aspect performance aussi notamment. Mieux vaut créer une classe de 50 méthodes ou 10 classes de 5 méthodes ?
7 nov. 2018 à 15:32
En terme de performance ça ne changera rien, 1 classe de 50 méthodes ou 10 classes de 5 méthodes, ça fera toujours 50 tests à exécuter... Il faut surtout penser à la lisibilité de l'analyse qui en ressort et avoir un rapport par classe de code ça permet de mieux comprendre les résultats.
Exemple d'illustration avec Jenkins :
Exemple d'illustration avec Sonar :
Modifié le 7 nov. 2018 à 15:43
7 nov. 2018 à 16:12
En terme de lisibilité j'aurait donc un test qui plante pour Operation, mais il faudra farfouiller dans le détail pour savoir si c'est un test de OperationTest ou OperationAdditionnerTest qui a planté dans le cas où tu ais les deux.
Et en terme de maintenance, il est plus simple de penser à changer une classe qu'à en changer plusieurs.
Remarque : J'ai déjà eu des problèmes avec des agrégation de rapport Test+IT (sur une version boguée de JaCoCo) et ça aurait sûrement été la même chose avec une agrégation de deux rapports Test d'une même classe, même si ça ne change rien en terme de performance, c'est quand même plus complexe d'avoir plusieurs classes.
7 nov. 2018 à 16:14