Bonjour,

J'ai devant moi un problème majeur : je souhaite réaliser un test unitaire sur une méthode publique ... problème, celle-ci appelle une méthode privée (de la même classe, mais potentiellement d'un autre namespace).
Je souhaite exclure l'utilisation d'un simulacre de classe complet (à savoir réécrire le code pour bouchonner l'appel ...). Dans ces conditions, quelle solution reste-il, s'il en existe encore une ?

Voici un exemple : (j'ai volontairement choisit un exemple trivial pour faire ressortir la problématique)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
    public class TUSampleClass
    {
        public double CalculerSomme(Int32 a, Int32 b)
        {
            var testa = MethodePrivee(a);
            if (testa)
            {
                var testb = ! MethodePrivee(b);
                if (!testb) return a;
                else return b;
            }
            else
                return a + b;
        }
 
        private bool MethodePrivee(Int32 param)
        {
            return param > 0;
        }
    }
Le fait de tester unitairement la méthode "MethodePrivee" ne pose pas problème, avec un Accessor.
Faut-il vraiment passer par de la duplication de code dans une classe simulacre pour bouchonner "MethodePrivee" ?
J'ai essayé pas mal de choses, y compris la réflexion, mais rien de tout cela ne fonctionne.

Enfin, sachez qu'il n'est pas envisageable de modifier quoi que ce soit dans le code métier, puisqu'il s'agit de la mise en place de tests unitaires sur une application existante (et très, très complexe)

Je vous remercie par avance de vos réponses, des vos idées !