Articles

Affichage des articles du novembre, 2014

Injecter des mocks dans un objet sans impacter le code pour le test en utilisant la reflexion

Image
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› ‹groupid›junit‹/groupid› ‹artifactid›junit‹/artifactid› ‹version›4.5‹/version› ‹scope›test‹/scope› ‹/dependency› ‹dependency› ‹groupid›org.mockito‹/groupid› ‹artifactid›mockito-all‹/artifactid› ‹version›1.9.5‹/version› ‹scope›test‹/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(); } } ...