Ca va demander quelques changements dans ton architecture... En gros, il faudrait que tu utilises l'injection de dépendance. Tu définis une interface IContexteDeCalcul, et tu manipules l'interface plutôt qu'une implémentation explicite. Plutôt que de créer explicitement une instance du contexte de calcul, tu utilises un container IoC comme Unity, StructureMap ou autre pour fournir l'implémentation à la demande
En gros, plutôt que de faire ça :
ContexteDeCalcul contexte = new ContexteDeCalcul();
Tu vas faire un truc comme ça (variable selon le container IoC utilisé) :
IContexteDeCalcul contexte = container.Resolve<IContexteDeCalcul>();
Ensuite, il faut juste que tu fasses une implémentation "bidon" de IContexteDeCalcul, utilisée pour les tests
Au démarrage de la "vraie" appli, tu vas faire quelque chose comme ça :
container.Register<IContexteDeCalcul>(new ContexteDeCalcul());
Alors que dans le setup du test, tu vas faire ça :
container.Register<IContexteDeCalcul>(new ContexteDeCalculPourLesTests());
Je ne suis pas un expert de l'injection de dépendance, donc je te renvoie à cet article...
http://philippe.developpez.com/artic...dedependances/
Partager