Qui a une solution pour ce besoin commun.
J'ai une classe dans mon application.
certaines méthodes sont publiques, car elles font partie de l'interface utilisateur, et d'autres sont privées, car elles servent à rendre le flux interne plus lisible.
Maintenant, disons que je veux écrire un test unitaire, ou plutôt un test d'intégration, qui sera situé dans un paquet différent, qui sera autorisé à appeler cette méthode, MAIS, je veux que l'appel normal à cette méthode ne soit pas autorisé si vous essayez de l'appeler à partir des classes de l'application elle-même.
Je pensais donc à quelque chose comme ça
public class MyClass {
public void somePublicMethod() {
....
}
@PublicForTests
private void somePrivateMethod() {
....
}
}
L'annotation ci-dessus marquera la méthode privée comme "publique pour les tests" ce qui signifie que la compilation et l'exécution seront autorisées pour toute classe faisant partie du package test..., tandis que la compilation et l'exécution seront autorisées pour toute classe faisant partie du package test... \or échouera pour toute classe qui ne fait pas partie du paquetage de test.
Des idées ? Existe-t-il une annotation de ce type ? Existe-t-il une meilleure façon de procéder ?
il semble que plus on écrit de tests unitaires, plus on est obligé de casser l'encapsulation...