Quelle serait la meilleure approche? Ecrivez des tests unitaires pour eux, ou demandez-vous pourquoi ils sont là?
La suppression de code est une bonne chose.
Lorsque vous ne pouvez pas supprimer le code, vous pouvez certainement le marquer comme @Deprecated , en indiquant la version majeure que vous ciblez pour supprimer la méthode. Ensuite, vous pouvez le supprimer "plus tard". Entre temps, il sera clair qu’aucun nouveau code ne dépend de celui-ci.
Je ne recommanderais pas d'investir dans des méthodes obsolètes - donc pas de nouveaux tests unitaires juste pour atteindre les objectifs de couverture.
La différence entre les deux est principalement de savoir si les méthodes font ou non partie de l' interface publiée . La suppression arbitraire de parties de l'interface publiée peut être une surprise désagréable pour les consommateurs qui dépendaient de l'interface.
Je ne peux pas parler à EclEmma, mais d'après mes expériences, vous devez faire attention à la réflexion. Si, par exemple, vous utilisez des fichiers de configuration de texte pour choisir les classes / méthodes auxquelles accéder, la distinction utilisé / non utilisé peut ne pas être évidente (j'ai été gravé par ce moyen avec des temps couplés).
Si votre projet est une feuille dans le graphique de dépendance, le cas de dépréciation est alors affaibli. Si votre projet est une bibliothèque, les arguments en faveur de la dépréciation sont plus justes.
Si votre société utilise une prise en pension mono , la suppression présente un risque plus faible que dans le cas d'une prise en pension multiple.
Comme indiqué par l0b0 , si les méthodes sont déjà disponibles dans le contrôle de source, leur récupération après suppression est un exercice simple. Si cela vous inquiète vraiment, réfléchissez à la manière d’organiser vos commits de manière à pouvoir récupérer les modifications supprimées si vous en avez besoin.
Si l'incertitude est suffisante, vous pouvez envisager de commenter le code plutôt que de le supprimer. C'est un travail supplémentaire dans le chemin heureux (où le code supprimé n'est jamais restauré), mais cela facilite la restauration. Mon hypothèse est que vous devriez préférer une suppression directe jusqu'à ce que vous ayez été brûlé plusieurs fois, ce qui vous donnera quelques indications sur la façon d'évaluer "l'incertitude" dans ce contexte.
question pourquoi ils sont là?
Le temps investi pour capturer la tradition n'est pas nécessairement perdu. On m'a appris à effectuer une suppression en deux étapes - tout d'abord, en ajoutant et en validant un commentaire expliquant ce que nous avons appris sur le code, puis en supprimant ultérieurement le code (et le commentaire).
Vous pouvez également utiliser quelque chose d'analogue aux enregistrements de décisions architecturales comme moyen de capturer la tradition avec le code source.