Injecter des mocks dans un objet sans impacter le code pour le test en utilisant la reflexion
Problème Comment injecter des mocks sur une classe contenant des champs privés sans modifier cette classe en y ajoutant un setter ou un constructeur spécialisé ???! Solution Au tout début ... Dépendances nécessaire: dependencies dependency groupidjunit/groupid artifactidjunit/artifactid version4.5/version scopetest/scope /dependency dependency groupidorg.mockito/groupid artifactidmockito-all/artifactid version1.9.5/version scopetest/scope /dependency /dependencies Soit la classe MyClass : package fr.ftravaglia.demo.mokitoinjection; /** * Use for test with reflexion * @author ftravaglia */ public class MyClass { // Field that haven't setter ! private transient Foo myFoo; /** * Default constructor */ public MyClass(){ super(); myFoo = new Foo(); } /** * Return the Foo name. * @return */ public String printMyFooName(){ return myFoo.printMyName(); } } ...