référenceurs à mock methods in same classMocking une méthode dans une classe en utilisant Mockito espion
class Temp() {
public boolean methodA(String param) {
try {
if(methodB(param))
return true;
return false;
} catch (Exception e) {
e.printStackTrace();
}
}
}
La classe de test
@Test
public void testMethodA() {
Temp temp = new Temp();
Temp spyTemp = Mockito.spy(temp);
Mockito.doReturn(true).when(spyTemp).methodB(Mockito.any());
boolean status = temp.methodA("XYZ");
Assert.assertEquals(true, status);
}
Lorsque vous appelez la vraie température de classe à methodA doit renvoyer la valeur de la méthode B moqué. Donc revenant vrai. Pourquoi est-ce incorrect? Je rencontre le même problème. Je veux lancer le test sur la vraie classe et non sur l'objet fantaisie comme suggéré par la réponse. Je veux courir la classe methodA et attendre l'objet moqué spyTemp valeur methodB lorsqu'elle est appelée
Veuillez poster un [mcve]. C'est 'methodB (param)' dans la question liée pas 'methodB()' –
Je ne comprends pas pourquoi vous devez re-poser la question liée. La réponse là répond déjà à votre question ici. – Tom
alors maintenant j'ai besoin de savoir si methodB est publique ou non. Si c'est privé, vous devez le gérer comme si son code était écrit dans la méthode A et s'il était public, vous pourriez le railler. – LenglBoy