Dernière modification : 11/11/2022

Tester un constructeur privé

 

Tester un constructeur privé peut être un test unitaire intéressant, surtout si celui-ci réalise des actions sensibles ou pour avoir une couverture de code à 100%. Cependant, transformer un constructeur initialement privé en publique en dehors des tests unitaires dégrade l'application, pouvant créer des anomalies. Par conséquent, l'outil présenté ci-dessous n'est à utiliser que lors des tests unitaires.

 

Récupération d'une instance de la classe ayant un constructeur privé :

private <T> T setAccessibleConstructor(Class<T> myClass) throws Exception {
    Constructor<T> constructor = myClass.getDeclaredConstructor();
    constructor.setAccessible(true);
    return constructor.newInstance();
}

 

Récupération d'une instance de la classe ayant un constructeur privé avec Mockito :

private <T> T setAccessibleConstructor(Class<T> myClass) throws Exception {
    Constructor<T> constructor = myClass.getDeclaredConstructor();
    constructor.setAccessible(true);
    return Mockito.spy(constructor.newInstance());
}

 

LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos