J'ai un scénario de classe inférieur. Lors du test de MyTestableClass, je souhaite traiter la classe Autowired. Je voudrais simuler seulement variable dans la classe AutoWired.Mockito Mock run Classe Autowired Object
classe échantillon est aussi dessous-
public class MyTestableClass {
@Autowired
private MyServiceClass service;
public void handleError(){
...
service.doSomething();
}
}
public class MyServiceClass {
@Autowired
private JMSChannel channel;
public void doSomething(){
System.out.println("Inside Service class");
.....
channel.isAvailable();
.....
}
}
@RunWith(MockitoJUnitRunner.class)
public class MyTestableClassTest {
private MyTestableClass testClass= new MyTestableClass();
private JMSChannel channel;
@Before
public void init(){
channel= mock(JMSChannel.class);
when(channel.isAvailable()).thenReturn(Boolean.TRUE);
}
@Test
public void test(){
testClass.handleError();
}
}
Par exemple, la console devrait me donner "Classe de service intérieur" avant de retourner vrai.
Merci à l'avance!
+1, Comment puis-je créer une instance du service Autowired? Je ne veux pas me moquer de ça, pour entrer dans doSomething(). Merci! –
Idéalement, passer de l'injection de champ à l'injection du constructeur, puis passer le simulacre au constructeur. – chrylis
@chrylis, puis-je demander par exemple/code? –